取得した位置情報を文字列化し、URLやデータベースで利用したい。
主な選択肢は下記3つ
現時点で十分に枯れていそうなのはGeoHashかなと。
GeoHexはかっこいいが、今回の利用用とではビジュアルは無関係なので。
plus+codesはGoogle公式というわけでもないようなので、今後の展開は未知数。
あーありがち - GeohashのグリッドをGoogle Maps上に再現するツール書いた
古い記事だがやろうとしていることはほぼコレ。
クエリで渡すか、ハッシュで渡すか、階層へ盛り込むのもアリっちゃアリ。
http://example.com?geo=xn3pvxy
http://example.com#xn3pvxy
http://example.com/xn3pvxy
経緯度とジオハッシュの相互変換にはライブラリを使用する。
下記の二つが候補として見つかった。
開発が最近行われており、オプションにより制度の調整も行えるlatlon-geohash
を採用した。
1const latLon = Geohash.decode(geoHash); 2console.log(`現在地の経度は${latLon.lat}、緯度は${latLon.lon}です。`);
このように簡単にジオハッシュを経緯度へ変換できる。
1const geoHash = Geohash.encode(latLon.lat, latLon.lon, 8);
経緯度をジオハッシュ化する際に、3番目の引数で桁数(精度)を指定できる。
未指定でも経緯度から自動判別を行う。