注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください
はじめに
自治体のインターネット切り離しによって、GoogleMapやYahoo地図などが使いづらくなっています。
以前までは工事の設計などで運搬距離を算出するために、インターネットの地図サービスで経路検索を行っていましたが、いまは使えないことはないのですが、インターネットの接続に時間がかかったり、接続時間に制限があったりして、使いづらくなっています。
オフラインで経路検索できないか、いろいろ探すと、QGISの「Routes and Zones」プラグインが便利でしたので紹介します。
QGISにはコアプラグインで「道路グラフプラグイン」という経路検索できるプラグインがありますが、「Routes and Zones」プラグインのほうが高速に、複数の経路検索ができるので便利でした。
準備するもの
Routes and Zonesプラグインを利用するには、次のものを準備する必要があります。
・道路などのラインデータ
座標参照系はWGS84(EPSG:4326)にします。OpenStreetMapなどの道路ラインデータを使って作成します。OpenStreetMapのデータは「bbbike.org」などでダウンロードできます。OpenStreetMapのデータには、歩道や自転車道などの車の通れない道路(bridleway、cycleway、footwayなど)も記録されていますので、事前に削除しておきましょう。また、高速道路(motorway)を使わないでルート検索をする場合には、高速道路も削除しておくといいでしょう。
・出発点と目的地のポイントデータ
座標参照系をWGS84(EPSG:4326)にします。シェープファイルなどで新規に作ります。「IDフィールド(数値)」と「Nameフィールド(テキスト)」が必要です。
ただし、出発地と目的地はデリミティッドテキストレイヤだと計算されませんので、シェープファイルに変換してください。
・Routes and Zonesプラグイン
Routes and Zonesプラグインは「実験的なプラグイン」です。
メニュー「プラグイン」→「プラグインの管理とインストール」の「設定」を選択し、「実験的プラグインも表示する」にチェックを付けてから、検索すると一覧に表示されるので、インストールします。
プラグインフォルダから必要なファイルをコピー
経路検索をするためのプロジェクトファイルを作成します。そのために、データを一つのフォルダに保存します。
Routes and Zonesを利用するには、計算した結果を保存するためのレイヤが必要ですが、そのレイヤファイルは、プラグインをインストールしたフォルダにサンプルとして保存されています。
通常は、「C:\Users\【ユーザー名】\.qgis2\python\plugins\raz\sample-data」に保存されています。サンプルデータのフォルダ内の「raz data.sqlite」をコピーして、経路検索のためのフォルダに保存します。
また、「道路ラインデータ」「出発点ポイントデータ」「目的地ポイントデータ」も同じフォルダに保存します。
レイヤを追加する
経路検索プロジェクトにレイヤを追加します。道路ラインデータと出発点、目的地データは「ベクタレイヤの追加」でプロジェクトに追加します。
「raz data.sqlite」にはルート(Route)と検索用のデータベース(verylong)が格納されています。この2つのレイヤを次の手順でプロジェクトに追加します。
- 「Spatialiteレイヤの追加」を選択し、「新規」ボタンをクリックします。
- 「raz data.sqlite」を選択し、「接続」ボタンをクリックします。
- 「ジオメトリを持たないテーブルもリストする」にチェックを付けます。
- リストの中から「route」と「verylong」を選択して、「追加」ボタンをクリックします。(複数選択する場合は、CTRLキーを押しながら選択)
レイヤの追加に成功すると、下図のようになります。
プロジェクトの座標系を投影座標系にする
※2017年12月10日追記
レイヤの座標系をすべて同じにしておく必要がありますが、レイヤの座標系は地理座標系でも投影座標系でも構いません。
しかし、プロジェクトの座標系は投影座標系でなければ、正しく距離が計算されないようです。
プロジェクトの座標系が地理座標系の場合、オンザフライCRS変換を有効にして、プロジェクトの座標系(CRS)を平面直角座標系などの投影座標系に変更してください。
出発点と目的地を作図する
出発点レイヤと、目的地レイヤに距離を計算したいポイントを作図します。地物を追加するときに、「ID」と「Name」フィールドにデータを入力しておきます。
Routeレイヤにもともとある地物を削除する
Routeレイヤには、サンプル用に記録されている地物があるので、事前に削除しておくといいです。
Routes and Zonesプラグインを実行する
メニュー「プラグイン」→「Routes and zones calculate tool」→「Route calculate tool」を選択します。
「Layer source(from points)」には出発点ポイントを選択します。「ID field」にはIDフィールド、「Name field」にはNameフィールドを選択します。
「Layer target(from points)」には目的地ポイントを選択します。「ID field」にはIDフィールド、「Name field」にはNameフィールドを選択します。
出発地と目的地は、事前に選択した地物のみを対象にすることもできます。その際は「Only selected points」にチェックを付けます。
「Map layer road network」には道路ラインレイヤを選択します。
「Maximum route length(kilometers)」には、ルートを計算する最大距離を入力します。例えば100kmと入力すると、100kmまでの範囲にある目的地を検索します。
「Map layer for calculated routes」には、routeレイヤを選択します。
「Table routes,longer maximun」にverylongレイヤを選択します。
「Run」ボタンをクリックすると、出発点から目的地までの最短ルートを検索し、Routeレイヤに作図します。
routeレイヤの属性データを確認すると、出発点と目的地の名前と距離(pathフィールド)が記録されています。
まとめ
QGISのコアプラグインである道路グラフプラグインは、道路ラインの地物が多いとエラーになることも多いですが、Routes and Zonesプラグインは、道路レイヤの地物数が多くても、高速で検索を行うことができます。
インターネット地図であるGoogleMapやYahoo地図でもルート検索ができますが、いちいち地点を選択しなければならない手間もありますし、地図の利用規約により、印刷して仕事で利用できない場合もあります。
そのような場合には、OpenStreetMapなどのデータを使った地図を使うと自由に利用することもできます。
便利なプラグインですので、利用してみてください。
注:32bitのOSだと、道路レイヤの地物数が多いとクラッシュダンプする場合があるようです。
その場合は、道路の地物数を減らして、再度実行してみてください。
理由は,オープンソースだから,だそうです。
本庁の職員で喜多さんのQGIS本を買って,仕事で使おうとしたら許可が出なかったそうです。
以前インストールした別の職員はセーフで,そのまま使っています。
ついでに宣伝です。
「森林境界明確化支援システム」のホームページを立ち上げました。
一度ご覧ください。
https://shinrin-kyokai.jimdo.com/
インストールしなくても使えるポータブル版なら使えるのではないでしょうか?
QGIS本のホームページにありますので、ダウンロードしてみては。
オープンソースだから使えないというのは、かなり時代錯誤ですね。
今はマイクロソフトもGoogleもオープンソースをたくさん使っています。
オープンソースは、たくさんのユーザーにチェックされているので逆に安全なのですがね。
さっそくポータブル版を入れてみたところ,
「VCRUNTIME140.dllがないため,プログラムを開始できません。」と出て起動しないそうです。
対処法があれば教えてください。
マイクロソフトのソフトウェアなので、大丈夫でしょう。
以下参考。
https://blog.halpas.com/archives/10918
VCRUNTIME140.dllは、QGISがインストールされているパソコンからコピーしても大丈夫です。
コピーしたVCRUNTIME140.dllをQGISポータブルの「qgis」→「bin」フォルダにコピーします。
このコメントだと、返信のレスポンスが悪いので、直接メールでも構いません。
メールアドレスはqgisshitumonアットgmail.com
※アットは@に置き換えてください。
だめでした。今度は,
MSVCP140.dllがないと言われたそうです。
これ以上危ない橋は渡れないので,とりあえず諦めます。
提案ですが,OSgeoJapan名で,主要地方公共団体にアンケートを出し,庁内コンピュータネットワークでオープンソースのプログラムの動作を許可しているかどうか尋ねてみればいかがでしょうか?
OSgeoJapanのような団体が,各自治体に,QGISを含んだオープンソースプログラムを推薦する文を書いて送ってくれると助かりますが..
http://gpsrsgis.seesaa.net/article/444857901.html
魚拓
https://archive.is/kYKWk
なぜKobaさん仰るところの「残念なソフトウェア」のインストールができない問題解決をキタさんやOSGeoJPに頼るのでしょうか?
つまり、QGISについて「残念な」という評価を示しておきながら、評価に対する対案や解決策を示さず、インストールができないという問題で困ったときには、詳細情報を示さず日々ボランティアで普及を頑張っているコミュニティにお願いするのはフェアではないとおもいます。
ポータブル版はVisual C++ Runtimeがインストールされていないと起動できないことがわかっただけでも、私は収穫でした。
県でQGISを含むオープンソースソフト許可されないのは残念ですね。
すべてのフリーソフトが許可されてないんでしょうか?
オープンソースということで禁止なら、ソフトウェア担当の職員の方はあまりにも勉強不足だと思います。
自治体のインターネットセキュリティ強化は自治体でのITのありかたを下手すればものすごくヤバクしてしまうものではないかと思っています。
少子高齢化を始めとする諸課題はITの高度利活用しか道がないと思っていますが、今のやり方では自治体のIT活用能力がどんどん落ちていく恐れがあると思っています。
そういった中でも自治体の中でオープン系の技術やデータを使っていろいろなことをやられている職員の方がいらっしゃいます。ここのブログの喜多さんもQGISの本をだされるとか、これは日本の森林分野のITの技術の向上やコスト削減に結果としてものすごく貢献したことになると思っています。
今年のFOSS4G TOKYOではガバメントギークセッションとして喜多さん、宮崎県のひなたGISを作られた落合さん。そしてオープンデータ、オープンソースについて公私に多くの活動実績をお持ちの会津若松市役所の目黒さんをお招きしてお話を聞くセッションを開催します。
まずは、このあたりで自治体のITの状況とそれに対してオープンな技術がどうできるかを考えるきっかけになるといいと思っております。
9月16日に東大、駒場リサーチキャンパスで開催します。画像の中継も行うと思いますから是非皆様ご参加お願いいたします。
https://www.osgeo.jp/events/foss4g-2017/foss4g-2017-tokyo/foss4g-2017-tokyo-coreday