Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 3.83 KB

README.md

File metadata and controls

43 lines (31 loc) · 3.83 KB

MyQTH / MyAct

MyQTHはJavascriptを使って端末の位置情報を取り出し、myqth.gaのリバースジオコーダを使ってJCC/JCGコードを国土地理院地図に表示するシステムです。

MYActはMyQTHにJAFF/POTAの公園位置情報とSOTAのサミットを表示するシステムで、各々myqth.gaのリバースジオコーダを使って国土地理院地図上に情報を表示しています。


エリア情報の作り方

公園の領域情報は国土地理院地図の自然公園の領域情報を使って生成しています。

ファイル名 内容
A10-10.geojson 国土地理院地図の自然公園の領域情報をQGISを使ってGeoJSON形式で保存したもの
A10-10-property.xml GeoJSON中に振られたIDと公園名を紐づける定義ファイル

最初に国土数値情報ダウンロードサイトから領域情報をダウンロードします。 メニュー「TOP> 国土数値情報>自然公園地域データ」から都道府県毎に最新データをすべてダウンロードしてください。(全国版は更新時期が古いため使用できません)

次にQGIS(バージョン3.30以降)で新規プロジェクトを作成しベース地図に国土地理院タイルを指定します。ブラウザの「XYZTiles→GSI」をクリックすると地理院地図タイルが表示されます。

次にダウンロードしたZIPファイルをドラッグ&ドロップします。レイヤパネルにA10-06_01_GML-A10-06_01_NaturalPark.shp等のレイヤが現れます。座標系を指定するためにレイヤ名の右端にある?アイコンをクリックし座標参照系JGD2000参照系IDEPSG:4612を指定すると画面上に領域図が現れます。これを繰り返し全ての県のデータを取り込みます。

領域図は自然公園の特別地域等のデータが入っておりサイズが大きいためこれを軽量化するために2段階でレイヤー内の地物を融合します。まず県ごとの

JAFF/POTAの公園名称・リファレンスコードが入ったsqliteのデータベースを作成します。

sh makedump.sh

このスクリプトはJAFFPOTAXref.csvで定義されているコードをsqliteのデータベースにインポートすると共にデータベースのダンプを行います。

次にA10-10.geojsonにJAFF/POTAのコードを振ります。

python importpotajaff.py

このスクリプトはA10-10.geojsonを読み込みA10-10-property.xmlとsqliteのデータベースから各領域にJAFF/POTAのリファレンスコードJAFF,POTAとユニークなIDUIDを属性として付与しjaffpota.geojsonとして出力します。同時に公園の形状から面積を求めsqliteのデータベースで該当する公園の面積データを更新します。この面積のデータはMyActでどのズームレベルでどの大きさの公園まで表示するか判断するために使われます。

jaffpota.geojsonはファイルサイズが大きいためMap Shaperを使ってファイルをTopoJSON形式に変換します。地図上にjaffpota.geojsonをドラッグ後、Simplifyのメニューで25%程度まで圧縮します。その後ExportでTopoJSON形式でjaffpota.jsonというファイル名で保存してください。

最後にこのTopoJSONファイルの各領域に公園名を入れます。

python addanotation.py

このスクリプトでは各領域に名称を付与する共に瀬戸内海国立公園のようにエリアが細分化されている場合、エリア毎に振られたUID単位で名称の再設定をしています。このスクリプトで生成されたjaffpota-annotated.jsonが最終的にMyActから読み込まれる領域ファイルになります。