にょろにょろニッチ雑記

Google検索で見つけられない、ちょっとマニアックでニッチな雑記を書き散らします。

QGISでKMLを使って最短経路を計算する方法

ネットで拾ってきたKMLの道路データを元にして、QGISで最短経路を表示させたかったが、なぜかできないまま数週間。

今回、なんとなくやったらできちゃったので、自分用にメモ。

こういうひとつひとつのノウハウがググっても存在しないのって不便ですね。

 

ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ

 

用意するもの

KMLデータ(ライン状の描画のもの)

QGIS

地図やらなんやらの基本的なデータはすでにQGISに取り込み済みという体で。

 

 

KMLデータをQGISに読み込む

画面上のメニュー「レイヤ」⇒「レイヤの追加」⇒「ベクタレイヤの追加」

 キャプチャ画像はこんな感じ。

f:id:mikkaboze33:20170620013456p:plain

 

そうすると下の画面が出てくるので、ブラウズをクリックして取り込みたいKMLを選ぶ。

f:id:mikkaboze33:20170620013630p:plain

 

 

すると、画面左のレイヤパネルに図のように追加されます。

無事にKMLのデータを取り込めました。

f:id:mikkaboze33:20170620014113p:plain

 

 

KMLをマルチパートのベクタレイヤに変換する

このままではなぜか最短距離の計測のためのベースデータとして使えない。

そのために、KMLのデータをシングルパートからマルチパートに変換するという作業が必要。

何故かはわからないので、詳しい人がおられたら是非教えていただきたいところ。

 

まずは上のメニューで「ベクタ」⇒「ジオメトリツール」⇒「シングルパートをマルチパートにする」を選択。

f:id:mikkaboze33:20170620014455p:plain

 

そうすると下のような表示が出てくるので、「ラインまたはポリゴン入力ベクタレイヤ」のドロップダウンメニューで、変換したいデータ名を選択する。

出力シェープファイルのパスも適当にきめる。

ただ、ユニークIDフィールドは何とも言えない。

多分これは重複のない数字のフィールドがあるのであれば、それを選ばなければならないはず。

よくわからなかったので、「drawOrder」という重複のなさそうなフィールドを選択しておいた。

f:id:mikkaboze33:20170620014923p:plain

 

元データのすぐ上に追加されているのがわかる。

f:id:mikkaboze33:20170620015504p:plain

 

 

③最短距離の輸送レイヤの元レイヤを指定

上のメニューで「ベクタ」⇒「道路グラフ」⇒「設定」を選択

f:id:mikkaboze33:20170620015733p:plain

 

輸送レイヤのレイヤのドロップダウンメニューに追加したばかりのマルチパートのShapeファイルが表示される。

f:id:mikkaboze33:20170620015916p:plain

 

あとはプラグインツールバーの何にもないところを右クリックして、パネル表示選択画面を開いて、「最短距離」にチェックをいれればOK。

f:id:mikkaboze33:20170620020248p:plain

 

下の図みたいな位置に表示される。

f:id:mikkaboze33:20170620020358p:plain

 

ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ

 

最短距離の計測の仕方などについてはいろいろとやり方が転がってるので、ネットをググってみてください。

 

しかしながらQGISというのは、便利なんだけど使い方がわからない、言うなれば「ツンデレ」なアプリケーションですね、本当に。