君はもうTileLayerPluginを体験したか−QGISで電子国土基本図(地理院地図)・その2
QGISでWeb地図(タイル地図)を表示するには幾つか方法があるが、OpenLayersプラグインかWMSミニドライバ*1の使用が一般的だろう。
特にOpenLayersプラグインはQGISオフィシャルプラグインリポジトリからインストール出来、Google Maps等の代表的なWeb地図をすぐ使えて大変便利である。地理院地図はプリセットされてないが、id:vec2ras:20120731:1343661021で記したように追加作業は簡単である。
そして2013年12月、Web地図を表示する新しいプラグインがオフィシャルリポジトリに登録された。タイルレイヤプラグイン(TileLayerPlugin)である。作者は数々のかゆい所に手が届くツールを公開されてきた三匹のウリボウさん。これもまたかゆい所に手が届く素晴しい出来なのである。
http://space.geocities.jp/bischofia_vb/qgis-plugins/TileLayerPlugin/
プラグインの使用には別途地図タイルを定義したテキストファイルが必要となるが、地理院地図の定義ファイルが作者から提供されている。
https://gist.github.com/minorua/7654132
使い方は簡単で、プラグインをインストール、定義ファイルを保存したディレクトリを指定するだけで、直ちに地理院地図がQGISに表示される。インストール時に自動的に作成される"layers"というディレクトリに定義ファイルを保存する場合、ディレクトリ指定はしなくてもよいようだ。自分のWindows7環境では次のようになっている。
C:\Users\vec2ras\.qgis2\python\plugins\TileLayerPlugin\layers
ちなみにOpenStreetMapは次のような定義ファイルになる。#はコメント行、セパレータはタブのTSVファイル。他の地図タイルも表示可能と思われるが、利用前に提供元の利用規約を参照するべきである*2。
# OpenStreetMap.TSV # title credit serviceUrl yOriginTop zmin zmax xmin ymin xmax ymax OpenStreetMap OpenStreetMap http://tile.openstreetmap.org/{z}/{x}/{y}.png 1 0 20 -180 -85.05 180 85.05
地図タイルは通常ネットから取得するため表示待ちが必ず発生するが、このときタイル取得状況を表示する「ナビゲーションメッセージ」がとても役に立つ。ダウンロードするタイル数やキャッシュヒット数、取得失敗等が表示され、また「電子国土基本図(オルソ画像)」等ズームレベルが限定される場合、範囲外のズームレベルではその旨ステータスでお知らせしてくれる。分かりやすい。
さらにレイヤプロパティの「スタイル」で透過度やレイヤ重ね合わせ時の混合モードを指定できる*3。これはOpenLayersプラグインには無い機能。素晴しい。
またプラグインには"XYZFrame"と"TMSFrame"が付属しているが、スクリプトでズームレベルやタイル番号、タイル範囲を描画するレイヤで、地図タイル製作者にとって非常に便利である。またローカルにある地図タイルも表示できるようだ。
とにかく素晴しい出来なので、QGISユーザは一度使ってみて欲しい。絶対に「あー、これだよこれ!」と思うよ。
もう作者の方には大感謝である。
*2:Google MapsはOpenLayersプラグインで利用規約上問題無く使えるので素直にOpenLayersプラグインから使えばよい
*3:2013年12月現在、自分の環境では混合モードが上手く動作しなかった?
「団地名あれこれ」
日本住宅公団では、発足当初から団地名について、団地の所在する町名などを冠して、「○○団地」「○○住宅」といった名称をつけていきました。数が増えると、「第一○○団地」「第二○○団地」としたり、新しいイメージとなるよう「○○台団地」「○○丘団地」などと工夫されたりしていました。
しかしその後、地名を重視するあまり、商品イメージとしては必ずし適切ではないという声が高まりました。さらに、昭和51年(1976)に新聞で大きく報道された団地の「空家問題」がきっかけとなり、団地名のつけ方を見直すことになりました。
昭和53年(1978)に、日本住宅公団内で新しい通達が定められ、団地のイメージを向上させるように、外来語を積極的に使用するという方針を打ち出しました。その結果、現在よく見受けられるような「エステート○○」「○○パークタウン」「○○サンハイツ」などいったカタカナを多用したネーミングに変わっていったのです。
(『多摩のあゆみ 第100号』, 財団法人たましん地域文化財団, 2000年, p.92.)
Shapes of Things
皆さまのご要望にお応えして弊社では新しい GIS ファイルフォーマットを策定しました。これは業界標準となって久しい ShapeFile を拡張するものです。
ShapeFile は . shp, .shx, .dbf で構成され、必要に応じて .prj や . sbx 等、定義や機能を追加可能な拡張性高いフォーマットで、業界標準として交換目的にも広く使われております。
属性情報が格納されている .dbf は dBASE IV というデータベース形式のファイルです。長い歴史を持つフォーマットですが、フィールド名やフィールドサイズ、フィールド数の制限が近年の地理空間情報データの実態に合わなくなっており、またユニコードの普及により、特に2バイト圏において文字コード変換が深刻な問題となっております。
そこで弊社では .dbf に替えて拡張性があり可読性が高い、オープンフォーマットである .csv 形式を採用することにしました。
.csv 形式はカンマで区切られたフィールドを持ち、フィールド名やフィールドサイズの制限はございません。またプレーンテキストのためテキストエディタで編集可能となっており、文字コード変換も簡単に行うことが出来ます。
この革新的な .csv 形式を採用することで ShapeFile の汎用性は更に増し、引き続き業界標準として皆さまの利便性に寄与するものと確信しております。
なお、本プレスリリースの問い合わせは一切受け付けておりません。ご了承下さい。
QGISで電子国土基本図
いち早く登場したWeb地図、電子国土Webシステム。独自ベクトル配信や独自タイルシステムでひとり気を吐いていましたが、いよいよ待望の「正方タイル背景地図画像」が試験公開となりました。
旧電子国土Webドメイン「cyberjapan.jp」の運用停止について
Webブラウザだけでなく、当然デスクトップGISで使いたい国土地理院の地図。ニーズはとても多いと思います。幸い QGIS は OpenLayers プラグインが配布されていて、これを使えば簡単に表示が出来るはず。なので簡単にやってみました*1。
1. 実施した環境
よくある Windows7 の機械です。他の OS でもたぶん大丈夫。
- Quantum GIS Desktop 1.8.0 (OSGeo4W 版)
- OpenLayers Plugin 0.93 (QGIS Python Plugin)
2. openlayers_plugin.py を編集する
ホームディレクトリに .qgis というディレクトリがあるはずです。 ($HOME)/.qgis/python/plugins/openlayers に OpenLayers プラグインが入っています。自分の Windows7 では次のようになっていました。
C:\Users\vec2ras\.qgis\python\plugins\openlayers
"openlayers_plugin.py" をテキストエディタで開いて次のブロックを探します。
# Layers self.olLayerTypeRegistry = OlLayerTypeRegistry() self.olLayerTypeRegistry.add( OlLayerType(self, 'Google Physical', 'google_icon.png', 'google_physical.html', True) ) self.olLayerTypeRegistry.add( OlLayerType(self, 'Google Streets', 'google_icon.png', 'google_streets.html', True) ) self.olLayerTypeRegistry.add( OlLayerType(self, 'Google Hybrid', 'google_icon.png', 'google_hybrid.html', True) ) …… (似た記述の繰り返し)
この塊の一番下に次の行を追加して保存、 "openlayers_plugin.pyc" を削除しておきます。
self.olLayerTypeRegistry.add( OlLayerType(self, 'GSI CyberJapanMap', 'cjp_icon.png', 'cjp.html', True) )
3. アイコン画像を置いておく
何でもいいのですが、電子国土ポータルサイトのこれが丁度良さそうです。 "cjp_icon.png" という名前で ($HOME)/.qgis/python/plugins/openlayers に PNG形式で保存します。
4. HTML ファイルを置いておく
"cjp.html" という名前で ($HOME)/.qgis/python/plugins/openlayers/html に置いて下さい。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>OpenLayers GSI CyberJapanMap Layer</title> <link rel="stylesheet" href="qgis.css" type="text/css"> <script src="http://portal.cyberjapan.jp/sys/OpenLayers-2.11/OpenLayers.js"></script> <script src="http://portal.cyberjapan.jp/sys/v4/webtis/webtis_v4.js"></script> <script src="OlOverviewMarker.js"></script> <script type="text/javascript"> var map; var loadEnd; var oloMarker; // OpenLayer Overview Marker function init() { map = new OpenLayers.Map('map', { theme: null, controls: [], projection: new OpenLayers.Projection("EPSG:3857"), }); loadEnd = false; function layerLoadStart(event) { loadEnd = false; } function layerLoadEnd(event) { loadEnd = true; } webtisMap = new webtis.Layer.BaseMap("GSI CyberJapanMap"); map.addLayer(webtisMap); map.addControl(new OpenLayers.Control.Attribution()); oloMarker = new OlOverviewMarker(map, getPathUpper(document.URL) + '/x.png'); } </script> </head> <body onload="init()"> <div id="map"></div> </body> </html>
色々間違っているかもですが、こんな具合に表示されるはず。これは大変便利です。しかしタイルを一枚画像に生成するためか動作も遅めでやや不安定。もっと良い方法はありませんかねえ。
追記(2013.03.04):
[twitter:@every_road] さんから次のご指摘がありました。ありがとうございます。
*1:2012年7月30日現在。 OpenLayers Plugin や電子国土Webシステムの仕様変更はありえます。本件ついて国土地理院や電子国土事務局等に問い合わせしないようお願いします
基盤地図情報DEMの図郭ファイル
年度末も押し迫った3/28。高精度なDEMが基盤地図情報として公開されました。待ちに待った多摩地区も含まれていて大変な話題に*1。とくに [twitter:@hajimebs] さんは印象的な絵をカシミール3Dでたくさん作って投稿してくれました。いやいや素晴らし。
-
- -
「基盤地図情報(数値標高モデル)5mメッシュ(標高)」の公開状況*2を把握できる ESRI ShapeFile と KMZ をつくりました。公開中の3次メッシュで構成しています。入用の方はどうぞご自由にお使いください。ただしダウンロードミスがあるかも知れませんのでご注意。
KMZ(GoogleEarth)
補足:
先ほど基盤地図情報サイトで次の文言を見つけました。
数値標高モデルは、国土地理院が整備した「基本測量成果」と国土交通省の各地方整備局等が整備した「公共測量成果」を提供しています。
両成果において、若干の重複部分があるため統合作業を進めています。この作業終了後には統合されたデータに置き換わる予定ですので、ご承知おき下さい。
自分で演算合成しなくてよさ気な雰囲気。待っていればいいのかな……
ダウンロードは一仕事なので、アップデートファイルが簡単に分かるよう差分情報は出してくださいませ、国土地理院さま!
*1:国土地理院による高精度な数値標高データの公開への反応 - Togetter
*2:2012年3月28日現在