地域メッシュを緯度経度に変換するライブラリを作成した話
モチベーション
- 仕事で地域メッシュを使用し、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 } });
このようにして使用します。 実際に描画してみるとこんな感じ
関数リファレンス
1次メッシュ
meshcode2latlng.first(meshcode);
2次メッシュ
meshcode2latlng.second(meshcode);
3次メッシュ
meshcode2latlng.third(meshcode);
1/2メッシュ
meshcode2latlng.half(meshcode);
1/4メッシュ
meshcode2latlng.quater(meshcode);