週休七日

趣味のこととか、技術のこととか、読書感想文とか

地域メッシュを緯度経度に変換するライブラリを作成した話

モチベーション

  • 仕事で地域メッシュを使用し、google map上にメッシュを描画する必要があった。
  • google mapで描画する際にメッシュデータを緯度経度に変換する作業が必要になった。
  • ハッカソンでオープンデータが配布されていたが、誰も実装できてなかった。

地域メッシュとは

地域メッシュ(ちいきメッシュ)とは、統計に利用するために、緯度・経度に基づいて地域をほぼ同じ大きさの網の目(メッシュ)に分けたものである。メッシュを識別するためのコードを地域メッシュコードと言う。(wikipediaより)

ライブラリ作成

meshcode2latlng とても長い名前ですがライブラリを作成しました。 クライアントjs, サーバーサイドjsで使用可能です。

実装方法

地域メッシュ統計の特質・沿革 - 総務省統計局 の13ページを参考にひたすら逆算しました。

使い方

var loc = meshcode2latlng.first(5339); これは1次メッシュを緯度経度に変換する関数です。

loc => { south: 35.333333333333336,
         west: 139,
         north: 36.00000000000001,
         east: 140 }

このように返ってきます。 google maps apiのRectangleクラスで描画する場合

var rectangle = new google.maps.Rectangle({
   map: map,
   bounds: {
     south: loc.south,
     west: loc.west,
     north: loc.north,
     east: loc.east
   }
});

このようにして使用します。 実際に描画してみるとこんな感じ 1st.png

関数リファレンス

1次メッシュ

meshcode2latlng.first(meshcode);

2次メッシュ

meshcode2latlng.second(meshcode);

3次メッシュ

meshcode2latlng.third(meshcode);

1/2メッシュ

meshcode2latlng.half(meshcode);

1/4メッシュ

meshcode2latlng.quater(meshcode);

参考文献

地域メッシュ(wikipedia)
Geocode Viewer
地域メッシュ統計の特質・沿革 - 総務省統計局