緯度経度からメッシュコードを作成する方法


Earth_AsiaSide


緯度経度の情報から標準地域メッシュコードを作成する方法について説明します。

度分秒表記⇔10進数表記

緯度経度が度分秒表記の場合にはまず10進数表記に変換する必要があります。

【計算方法】
【例】「139度 41分 30.3秒」を10進数に変換する。
「度」はそのままで、「分」を60、「秒」を3,600で割りそれらを足す。
= 139 + ( 41 ÷ 60 ) + ( 30.3 ÷ 60 ÷ 60 )
= 139.69174967

ちなみに10進数表記を度分秒表記に変換するには
度 = 整数のみを取り出す ⇒ 139
分 = 小数点以下を取り出し、60 を掛け、整数部分を取り出す。
0.69174967 × 60 = 41.504976 ⇒ 41
秒 = 分での計算の小数点以下を取り出し、60 を掛ける。
0.504976 × 60 = 30.29856
度・分・秒を組み合わせ、139度 41分 30.29856秒となる。

メッシュコード

日本国における標準地域メッシュが設定される範囲は以下のようになっています。
北緯20度〜46度
東経122度〜154度

東端 南鳥島(1次メッシュコード3653)
西端 与那国島(1次メッシュコード3622)
南端 沖ノ鳥島(1次メッシュコード3036)
北端 択捉島(1次メッシュコード6848)

メッシュコードの種類と構成

メッシュコードは南端緯度と西端経度(メッシュの左下)の位置(座標)を元に計算される。つまりメッシュ正方形の左下の点の座標ということになります。
メッシュコード主には1次メッシュコード、2次メッシュコード、3次メッシュコードの3つの要素によって構成されます。

   5339 45 47
   ①       

       ①1次メッシュコード
       ②2次メッシュコード
       ③3次メッシュコード

 

①1次メッシュコード
緯度間隔:40分=0.6666666度
経度間隔:1度
1辺の長さ:約80km
コード桁数:4桁 (緯度2桁+経度2桁)

上2桁
1次メッシュコードの上2桁は赤道から上方向に40分ごとに通し番号を振っている。1度(=60分)あたり1.5区画分(60÷40)となるので緯度を1.5倍したものが1次メッシュコードの上2桁となる。

下2桁
東経100度から1度ごとに通し番号を振っているので経度から100を引いたものが1次メッシュコードの下2桁となる。

②2次メッシュコード
緯度間隔:5分=0.0833333度(1次メッシュ区画を8等分)
経度間隔:7分30秒=7.5分=0.125度(1次メッシュ区画を8等分)
1辺の長さ:約10km
コード桁数:6桁(1次メッシュコード4桁+緯度1桁+経度1桁)

③3次メッシュコード
緯度間隔:30秒=0.0083333度(2次メッシュ区画を10等分)
経度間隔:45秒=0.0125度(2次メッシュ区画を10等分)
1辺の長さ:約1km
コード桁数:8桁(1次メッシュコード4桁+2次メッシュコード2桁+緯度1桁+経度1桁)

メッシュコードの算出方法

※緯度、経度は10進数に変換して算出する。
[1次メッシュコード上2桁]
緯度×60分÷40分=p 余り a

[1次メッシュコード下2桁]
経度ー100度=u 余り f

[2次メッシュコード上1桁]
a÷5分=q 余り b

[2次メッシュコード下1桁]
f×60分÷7分30秒=v 余り g

[3次メッシュコード上1桁]
b×60秒÷30秒=r 余り c

[3次メッシュコード下1桁]
g×60秒÷45秒=w 余り h

  基準地域メッシュコード
    pu qv rw

例)「北緯35度42分2.8秒 東経139度42分53.1秒」の基準地域メッシュコードを算出する
※緯度、経度を10進数へ変換
北緯35度42分2.8秒=35度+(42分÷60分)+(2.8秒÷3600秒)=35+0.7+0.0007777=35.7007777度
東経139度42分53.1秒=139度+(42分÷60分)+(53.1秒÷3600秒)=139+0.7+0.01475=139.71475度
[1次メッシュコード上2桁]
35.7007777度×60分÷40分=2142.04666分÷40=53 余り 22.04666分
[1次メッシュコード下2桁]
139.71475度ー100度=39 余り 0.71475度
[2次メッシュコード上1桁]
22.04666分÷5分=4 余り 2.04666分
[2次メッシュコード下1桁]
0.71475度×60分÷7分30秒=42.885分÷7.5分=5 余り 5.385分
[3次メッシュコード上1桁]
2.04666分×60秒÷30秒=4 余り 2.7996秒
[3次メッシュコード下1桁]
5.385分×60秒÷45秒=7 余り 8.1秒

→基準地域メッシュコード 5339 45 47

例)基準地域メッシュコード 5339 45 47の緯度、経度を算出する
[1次メッシュコード部分]
(緯度)53÷60分×40分=53×2/3度=106/3度
(経度)39+100度=139度
[2次メッシュコード部分]
(緯度)106/3度+(4×2/3)÷8=106/3度+1/3度=107/3度
(経度)139度 +5÷8=139度+5/8度
[3次メッシュコード部分]
(緯度)107/3度+(4×2/3)÷8÷10=107/3度+1/30度=1071/30度=35.7度
(経度)139度+5/8度+(7÷8÷10)=139度+5/8度+7/80度=(11120+50+7)/80度=139.7125度

→緯度35度42分 経度139度42分45秒

基盤地図情報の入手

国土交通省 国土地理院
「基盤地図情報サイト」(http://www.gsi.go.jp/kiban/)

■基盤地図情報ファイルはxml形式、2次メッシュ単位

■ファイル内で使用されているコード
・地域標準コード
→総務省統計局サイトで入手可能(http://www.stat.go.jp/index/seido/9-5.htm)

サンプルプログラム

PHPでサンプルプログラムを作成しました。→「PHP 緯度経度からメッシュコードを算出する

シェアして頂けると嬉しいです

















チャーム本店



価格.com ブロードバンド

価格.com 自動車保険









■コメントはお気軽にどうぞ