はじめに
国土交通省国土地理院が作成している数値地図25000(空間データ基盤)は日本全国 を2万5000分の1地形図に相当する精度を持つ地形データだ。道路中心線、鉄道中心線、河川中心線、水涯線、海岸線、行政界、基準点、地名、公共施 設、標高の10項目のデータが含まれる。しかしこれらのデータ表記は(私が調べた限りでは) 一般に公開されていない。
ここでは私が勝手に想像したデータ仕様を紹介する。
「座標」について
数値地図内で扱われる座標は簡単な変換により世界測地系に基づいた経緯度となります。拡張子が「sal」のファイルに含まれる座標データは「000051」のようになっています。これを経緯度 に変換するには、まず、拡張子が「slp」のファイルの該当行(この場合51行目)を参照します。ここには 「0182450004345700」のような16桁の数値が格納されています。この数値の前半8桁が経度、後半8桁が緯度 を示しています。この数値に各数値地図固有のオフセット値を加算します。拡張子が「slm」ファイルの1行目 には「4868260000,1248680000」のような2つの値が格納されています。これがオフセット値です。
つまり「sal」ファイルに含まれていた「000051」という座標は「東経182.4500+486826.0000秒、北緯434.5700+124868.0000秒」 、すなわち「東経487008.4500秒、北緯125302.5700秒」=「東経135度16分48秒4500、北緯34度48分22秒5700」となります。
「ID」について
ファイル内に含まれている各種IDは「PT000001」のように英文字2文字+数字6桁で表現されるパターンと、「PT28204000001」 のように数字が11桁になる場合の2種類があります。数字が11桁の場合は前半5桁が市区町村コード(28204の場合は兵庫県西宮市) を表します。例えば「28204CM.sal」ファイルに含まれる「PT000001」というIDと任意のファイルに含まれる「PT28204000001」は同一ID として処理する必要があります。しかし「28205CM.sal」に含まれる「PT000001」とは違うIDだということに注意する必要があ ります(市区町村コードが28205は兵庫県洲本市を示すため)。
地名
・ファイル名「xxxxxCM.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204CM.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
CM(ID{地名ID}){SR{種類}NM{地名}PT(ID{ポイントID}){座標}}
例:
CM(ID{CM000001}){SR{92}NM{神戸製鋼工場}PT(ID{PT000001}){000001}}
・データ内容
SR
91 = 自然地名
92 = 居住地名
93 = 土地の利用景
・備考
なし
道路区間
・ファイル名「xxxxxDK.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204DK.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
DK(ID{道路区間ID}){JT{状態}YU{有料}SB{種別}FI{幅員}NM{名前}HR(IR{橋梁参照ID})TR(IR{トンネル参照ID})YR(IR{雪覆参照ID})
CV(ID{カーブID}){座標1,座標2,座標3}EG(ID{エッジID}){BD(IR{境界参照ID})BD(IR{境界参照ID})GM(IR{カーブ参照ID})}}
例:
DK(ID{DK008218}){JT{11}YU{1D}SB{13}FI{19}NM{}CV(ID{CV008861}){005619,005668}
EG(ID{EG000001}){BD(IR{ND28204000822})BD(IR{ND28204000829})GM(IR{CV28204008861})}}
・データ内容
JT
11 = 供用中
YU
1C = 有料
1D = 無料
SB
13 = 庭園路
14 = 石段
15 = 一般道
16 = 高速道路
幅員
17 = 1.5m未満
18 = 1.5m以上3.0m未満
19 = 3.0m以上5.5m未満
1A = 5.5m以上13.0m未満
1B = 13.0m以上
1E = 真幅道路等
・備考
なし
道路節点
・ファイル名「xxxxxDS.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204DS.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
DS(ID{道路節点ID}){PT(ID{ポイントID}){座標}ND(ID{ノードID}){GM(IR{ポイント参照ID})}}
例:
DS(ID{DS000001}){PT(ID{PT000618}){000618}ND(ID{ND000001}){GM(IR{PT28204000618})}}
・データ内容
なし
・備考
なし
駅
・ファイル名「xxxxxEK.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204EK.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
EK(ID{駅ID}){NM{駅名}KN(IR{関係参照ID})}
例:
EK(ID{EK000001}){NM{しゅくがわ}KN(IR{TK28204000004})}
・データ内容
なし
・備考
駅名はひらがな表記
行政代表点
・ファイル名「xxxxxGD.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204GD.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
GD(ID{行政代表点ID}){SB{種別}NM{名前}PT(ID{ポイントID}){座標}KA(IR{SK28204000032})KA(IR{界参照ID})KA(IR{界参照ID})KA(IR{界参照ID})}
例:
GD(ID{GD000001}){SB{23}NM{西宮市}PT(ID{PT053420}){053420}KA(IR{SK28204000032})KA(IR{SK28204000033})KA(IR{GK28204000143})KA(IR{GK28204000144})}
・データ内容
SB
23 = 郡市東京都の区
24 = 町村指定都市の区
・備考
「KA(IR{界参照ID})」のデータは数百個以上連なる
行政界
・ファイル名「xxxxxGK.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204GK.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
GK(ID{行政界ID}){JT{状態}SR{種類}CV(ID{カーブID}){座標1,座標2,座標3}}
例:
GK(ID{GK000142}){JT{27}SR{2B}CV(ID{CV009978}){051520,051517,051516,051514,051513,051512}}
・データ内容
JT
27 = 確定境界
28 = 未定境界
SR
2B = 郡市東京都の区界
2C = 町村指定都市の区界
・備考
座標は複数個連なる
橋
・ファイル名「xxxxxHA.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204HA.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
HA(ID{橋ID}){NM{名前}DH(IR{道路橋参照ID})TH(IR{鉄道橋参照ID})KH(IR{河川橋参照ID})}
例:
HA(ID{HA000001}){NM{}DH(IR{DK28204000581})}
・データ内容
なし
・備考
・道路橋参照ID
・鉄道橋参照ID
・河川橋参照ID
はどれか1つのみが表示されている(全てのファイルで1つのみの表示かどうかは未確認)。
基準点
・ファイル名「xxxxxKJ.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204KJ.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
KJ(ID{基準点ID}){SR{種類}NM{名前}HK{標高}PT(ID{ポイントID}){座標}PD(ID{時代ID}){設置年月日}}
例:
KJ(ID{KJ000001}){SR{61}NM{30000004836}HK{213.343}PT(ID{PT000588}){000588}PD(ID{PD000001}){20011001}}
・データ内容
SR
61 = 水準点
62 = 三角点
63 = 電子基準点
・備考
電子基準点はSR=63かどうか未確認。
河川区間
・ファイル名「xxxxxKK.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204KK.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
KK(ID{河川区間ID}){SB{種別}NM{名前}CV(ID{カーブID}){座標1,座標2,座標3}
EG(ID{エッジID}){BD(IR{境界参照ID})BD(IR{境界参照ID})GM(IR{参照ID})}}
例:
KK(ID{KK000221}){SB{55}NM{}CV(ID{CV009141}){042131,042135,042142,042149,042156,042160}
EG(ID{EG009012}){BD(IR{ND28204006333})BD(IR{ND28204006364})GM(IR{CV28204009141})}}
・データ内容
SB
55 = 一条河川
56 = 二条河川
59 = 湖沼域内中心線
・備考
なし
公共施設
・ファイル名「xxxxxKO.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204KO.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
KO(ID{公共施設ID}){SR{種類}NM{名前}JS{住所}PT(ID{ポイントID}){座標}}
例:
KO(ID{KO000001}){SR{86}NM{市立山口小学校}JS{山口町下山口4-23-1}PT(ID{PT000356}){000356}}
・データ内容
SR
81 = 国の機関
82 = 地方公共団体
83 = 厚生機関
84 = 警察機関
85 = 消防署
86 = 学校
87 = 病院
88 = 郵便局
・備考
なし
河川節点
・ファイル名「xxxxxKS.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204KS.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
KS(ID{河川節点ID}){PT(ID{ポイントID}){座標}ND(ID{ノードID}){GM(IR{ポイント参照ID})}}
例:
KS(ID{KS000001}){PT(ID{PT040180}){040180}ND(ID{ND006235}){GM(IR{PT28204040180})}}
・データ内容
なし
・備考
なし
メッシュ標高
・ファイル名「xxxxxMH.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204MH.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
MH(ID{メッシュ標高ID}){HK{標高}PT(ID{メッシュポイントID}){座標}}
例:
MH(ID{MH000001}){HK{0}PT(ID{PM000001}){000001}}
・データ内容
なし
・備考
標高値は、そのメッシュ内での最高標高を表す(単位:メートル)。
座標の特定には「xxxxx.slp」ファイルではなく、「xxxxxMH.slp」ファイルを用いる。
水域界
・ファイル名「xxxxxKS.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204KS.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
SK(ID{水域界ID}){SR{種類}CV(ID{カーブID}){座標1,座標2,座標3}}
例:
SK(ID{SK000006}){SR{51}CV(ID{CV000006}){003322,003311,003310,003307,003305,003298}}
・データ内容
SR
51 = 水涯線または湖岸線
52 = 海岸線
53 = 河口
・備考
なし
鉄道区間
・ファイル名「xxxxxTK.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204TK.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
TK(ID{鉄道区間ID}){JT{状態}SB{種別}NM{名前}TR(IR{トンネル参照ID})CV(ID{カーブID}){座標1,座標2,座標3}
EG(ID{エッジID}){BD(IR{ノード参照ID})BD(IR{ノード参照ID})GM(IR{カーブ参照ID})}}
例:
TK(ID{TK000128}){JT{41}SB{43}NM{新幹線(1.44)}TR(IR{TO28204000029})CV(ID{CV008990}){039625,039620,039617}
EG(ID{EG008849}){BD(IR{ND28204006118})BD(IR{ND28204006089})GM(IR{CV28204008990})}}
・データ内容
JT
41 = 運行中
42 = 建設中
SB
43 = 普通鉄道JR
44 = 普通鉄道
45 = 路面電車
46 = 地下式鉄道
47 = その他
・備考
トンネル
・ファイル名「xxxxxTO.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204TO.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
TO(ID{トンネルID}){NM{名前}DT(IR{道路トンネル参照ID})TT(IR{鉄道トンネル参照ID})KT(IR{河川トンネル参照ID})}
例:
TO(ID{TO000001}){NM{}DT(IR{DK28204003340})}
・データ内容
なし
・備考
・道路トンネル参照ID
・鉄道トンネル参照ID
・河川トンネル参照ID
はおそらくいずれか1つのみが入る(絶対に1つかは未確認)。
鉄道節点
・ファイル名「xxxxxTS.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204TS.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
TS(ID{鉄道節点}){PT(ID{ポイントID}){座標}ND(ID{ノードID}){GM(IR{ポイント参照ID})}}
例:
TS(ID{TS000001}){PT(ID{PT039480}){039480}ND(ID{ND006068}){GM(IR{PT28204039480})}}
・データ内容
なし
・備考
なし
雪覆い
・ファイル名「xxxxxYO.sal」。xxxxxは市区町村コードが入る。例えば兵庫県西宮市であれば「28204YO.sal」となる。
・ファイル内容
1行1データのテキストファイルとして格納されている。
YO(ID{雪覆いID}){NM{}DY(IR{道路雪覆い参照ID})}
例:
YO(ID{YO000001}){NM{}DY(IR{DK28204007896})}
・データ内容
なし
・備考
なし







