はじめに
国土交通省国土地理院が作成している数値地図25000(空間データ基盤)は日本全国 を2万5000分の1地形図に相当する精度を持つ地形データだ。道路中心線、鉄道中心線、河川中心線、水涯線、海岸線、行政界、基準点、地名、公共施 設、標高の10項目のデータが含まれる。しかしこれらのデータ表記は(私が調べた限りでは) 一般に公開されていない。
ここでは私が勝手に想像した標高に関するデータ仕様を紹介する。
関連ファイル
・xxxxxMH.sal
「xxxxx」の部分は市区町村コード。例えば西宮市であれば「28204MH.sal」というファ イル名になる。
このファイルには標高値に関するデータが格納されている。
・xxxxxMH.slp
「xxxxx」の部分は市区町村コード。例えば西宮市であれば「28204MH.slp」というファ イル名になる。
このファイルには座標に関するデータが格納されている。
・xxxxx.slm
「xxxxx」の部分は市区町村コード。例えば西宮市であれば「28204.slm」というファ イル名になる。
このファイルには座標のオフセットデータが格納されている。
xxxxxMH.salファイル
MH(ID{MH000001}){HK{0}PT(ID{PM000001}){000001}}
MH(ID{MH000002}){HK{0}PT(ID{PM000002}){000002}}
MH(ID{MH000003}){HK{0}PT(ID{PM000003}){000003}}
...(省略)...
MH(ID{MH031785}){HK{181}PT(ID{PM031785}){031785}}
MH(ID{MH031786}){HK{152}PT(ID{PM031786}){031786}}
MH(ID{MH031787}){HK{127}PT(ID{PM031787}){031787}}
1行1データのテキストファイルとして保存されている。データ部分を分離すると以下のように表現できる。
MH(ID{8byte}){HK{?byte}PT(ID{8byte}){6byte}}
MH(ID{m_strMHID}){HK{m_nHK}PT(ID{m_strPTID}){m_nPositionNo}}
CString m_strMHID; //メッシュ標高ID
long m_nHK; //標高値
CString m_strPTID; //ポイントID
long m_nPositionNo; //slpファイルの対応行番号
// ※標高値以外は固定長
標高値の単位はメートル。xxxxxMH.slpファイル
0489000000030000 0491000000030000 0487000000050000 ...(省略)... 0225000006290000 0227000006290000 02290000062900001行1データのテキストファイルとして保存されている。
データ部分を分離すると以下のように表現できる。
0489000000030000 xxxxxxxxyyyyyyyy //x:m_nLongitude(経度) //y:m_nLatitude(緯度) long m_nLongitude; //経度 long m_nLatitude; //緯度 // ※両値とも8byteの固定長
xxxxx.slmファイル
4868260000,1248680000 ...(省略)...テキストファイルとして保存されている。
今回利用するのは1行目のみ。
4868260000,1248680000 xxxxxxxxxx,yyyyyyyyyy //x:m_nLongitudeOffset(経度オフセット) //y:m_nLatitudeOffset(緯度オフセット) long m_nLongitudeOffset; //経度オフセット long m_nLatitudeOffset; //緯度オフセット // ※両データは「,」セパレート
データの使い方
まずxxxxxMH.salファイルを読み込み、m_nHKとm_nPositionNoを取得する。次に xxxxxMH.slpファイルを開き、m_nPositionNoに対応する行数のm_nLongitudeと m_nLatitudeを取り出す。最後にxxxxx.slmファイルからオフセット値を取り出して 緯度・経度に加算する。これである座標点(緯度・経度)に対する標高を取得することができる。
例えば、メッシュ標高ID「MH000001」の標高は海抜ゼロメートル、東経487315.0000秒 (135度21分55秒000)、北緯124871.0000秒(34度41分11秒0000)となる。これらは JGD2000の値となる。
これらの標高データのみをもとにして兵庫県西宮市を作図すると以下のようになる。
