Tutorial2
CSVデータからインタラクティブ地図を作製する方法のチュートリアル その2
(ポイントのカテゴリーに応じて、ポイントの色を変える)
2014.05.13 1st rev. By Satoru Takagi
2017.12.07 OSS化に対応した更新
2018.01.11 markdown化
2023.05.19 mavenベースのパッケージに移行
練習1
csvデータのRegionカラムの値を基にポイントアイコンの色を変化させるコンテンツを作成します。SVGMapToolsの仕様により、特に設定しない場合色は適当に割り振られます。
-
tools
をカレントディレクトリにしたコマンドプロンプトで作業する。その他は省略(tutorial1)の練習と同じ) - 大縮尺(拡大表示)用ベクターデータを生成
Shape2SVGMap.bat -micrometa2 -level 3 -limit 50 -showtile -densityControl 400 -lowresimage -charset utf-8 -linktitle 3 -directpoi rect -color 4 ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.csv
- 同ディレクトリに、JPcities_of_worldcitiespop_utf8.svgファイルおよび、補助の.svgファイル群が作成される。
- パラメータの要点
- -color 4 : 色を4カラム目の値を基に設定
- -directpoi rect : でベクタ図形のポイントを指定(上の設定を有効にするにはベクタ図形のポイントを指定する必要がある)
- 小縮尺(縮小表示)用ラスターデータを生成
Shape2ImageSVGMap.bat ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.svg -sumUp 16 -antiAlias -charset utf-8 ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.csv 4 #000000 0 3
- 同ディレクトリに、JPcities_of_worldcitiespop_utf8ディレクトリが作成され、その下に補助ファイル群が作成される。(いくつかのディレクトリとpngやsvgファイル)
- パラメータの要点
- パラメータ末尾から4番目の値:この値は塗りの色を指定するが、ここでHTMLカラーコード(ハッシュ付きの16進数)に代えてカラム番号(4)を指定することで 色を指定カラム(4)の値を基に設定できる
tutorials\webApps\Container.svg
をテキストエディタで編集<!-- Thematic Layer -->
の行の後に、<animation title="Cities of Japan" xlink:href="sample/JPcities_of_worldcitiespop_utf8.svg" class="poi" x="-30000" y="-30000" width="60000" height="60000" />
を追加する。(サンプルにはすでに追加済みです)- これで地図作成完了
tutorials\webApps\SvgMapper.html
をローカルWebApp起動可能モードのChromeで開くと変換したデータが見られる。- Regeon(県)の値に応じて色分けしたポイントが表示されている。
- 地図のUIの簡単な説明
- ある程度(点が分離する程度)拡大すると、点の形が四角形になり、クリックしてプロパティを表示することができるようになる。(どの程度拡大すると四角形に変化するかはデータの密度に依る)
- 点の形が四角形になった段階では、文字入力欄(ENEOSと初期値が入っている)にプロパティの値を入力してSetPOIfilterボタンを押すとフィルタ表示ができる(正規表現)。
- 複数のプロパティの複合検索は、プロパティがCSV形式(並び順はCSVのデータと同一)であることを想定して、世紀表現形式で入力することで可能
練習2
この練習では、Regeonの値ではなくTest3カラムの値(緯度をコピーしたカラム)をもとに、ポイントに色付けします。練習1と違うのは色付けのためのカラムが練習1では文字列(Regeon名)に対し、練習2は数値(緯度)であること。csvのデータが数値であるかどうかを明示するため、スキーマファイルを用いている点(-csvschema
オプション 詳細はヘルプを参照)
この場合、色はHSVのH(色相)値に基づいてつけられます。(値が高いと赤(H:0)、低いと青(H:270))
-
省略(練習1と同じ)
- 大縮尺(拡大表示)用ベクターデータを生成
Shape2SVGMap.bat -micrometa2 -level 3 -limit 50 -showtile -densityControl 400 -lowresimage -directpoi rect -color 6 -csvschema ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8_schema.txt ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.csv
- 小縮尺(縮小表示)用ラスターデータを生成
Shape2ImageSVGMap.bat ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.svg -sumUp 16 -antiAlias -csvschema ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8_schema.txt ..\tutorials\webApps\sample\JPcities_of_worldcitiespop_utf8.csv 6 #000000 0 3
- 省略(練習1と同じ)
- これで地図作成完了
tutorials\webApps\SvgMapper.html
をChromeで開くと変換したデータが見られる。- Test3(緯度の値のコピー)の値に応じて色分けしたポイントが表示されている。(北が赤く、南が青く表示)
- 省略(練習1と同じ)
実践
- 作業ディレクトリの設置
- toolsディレクトリをカレントディレクトリと想定
tutorials\webApps\
以下に任意の作業ディレクトリ(英文字が好ましい)を設置する- そのフォルダを以下
tutorials\webApps\(wdir)
とする
- そのフォルダを以下
- CSVファイルの準備
- 設置した
tutorials\webApps\(wdir)
に、あらかじめ用意したCSVファイル(適当な桁に緯度、経度が入っている)を配置する。- 以下、そのファイルを
tutorials\webApps\(wdir)\(wfile).csv
とする
- 以下、そのファイルを
- csvファイルの注意点:tutorial1と同じ
- 設置した
- CSVの(ColorCol:値に応じてアイコンの色を変化させるための属性番号)を調べる
- 注:緯度と経度カラムが空間情報に変換され、属性番号が変化するため、CSVのカラム番号とは異なる
Shape2SVGMap.bat -showhead ..\tutorials\webApps\(wdir)\(wfile).shp
を実行、以下のような表示が出る。
attrNo:0 Name:the_geom type:Point
attrNo:1 Name:xxxx
....
attrNo:n Name:(ColorAttrName)
....
Finished...
ここで、控えておいたカラムの名称(ColorAttrName)
と一致するattrNoの値(n)を控える。これを(ColorCol)
とする。
- 大縮尺(拡大表示)用ベクターデータを生成(データサイズによって時間がかかる)
Shape2SVGMap.bat -micrometa2 -level 3 -limit 50 -showtile -densityControl 400 -lowresimage -directpoi rect -color (colorCol) ..\tutorials\webApps\(wdir)\(wfile).shp
- 同ディレクトリに、Self-GS-POI-b.svgファイルおよび、補助の.svgファイル群が作成される。
- 小縮尺(縮小表示)用ラスターデータを生成(データサイズによって時間がかかる)
Shape2ImageSVGMap.bat ..\tutorials\webApps\(wdir)\(wfile).svg -sumUp 16 -antiAlias ..\tutorials\webApps\(wdir)\(wfile).shp (colorCol) #000000 0 3
- 同ディレクトリに、
(wfile)
ディレクトリが作成され、その下に補助ファイル群が作成される。(いくつかのディレクトリとpngやsvgファイル)
- 同ディレクトリに、
tutorials\webApps\Container.svg
を編集する。<!-- Thematic Layer -->
の行の後に、以下のタグを追加する。<animation title="(CONTENT Title)" xlink:href="(wdir)/(wfile).svg" class="poi" x="-30000" y="-30000" width="60000" height="60000" />
- (CONTENT Title)は、何でも良いが、半角英数を推奨(漢字の場合UTF-8です)
- これで地図作成完了
tutorials\webApps\SvgMapper.html
をChromeで開くと変換したデータが見られる。
以上