blog.osa.in.net

緯度と経度の順序

2021-09-15

1,260文字

統一されていない順序

緯度 latitude と経度 longitude の順序がサービスや API によって違う。

たとえば、Google Maps は latitude, longitude の順になっている。

一方、オープンソースの経路探索エンジンである OSRM の API では longitude, latitude という順になっている。

そんな OSRM も Web UI では latitude, longitude になっていたり、RGeolongitude, latitude だったりと、順序はわりと揺れている印象がある。

指針

関連する規格に ISO 6709 がある。

要点だけ抜粋すると以下の通り。

  • Latitude comes before longitude
  • North latitude is positive
  • East longitude is positive

つまり、ISO 6709 的には latitude, longitude の順序が正しいことになる。

なお、緯度経度の符号も定義されているが、さすがにこっちが揺れているのは見たことがない。

ISO 6709 による文字列表現

ISO 6709 の付属書では座標の文字列表現も定められている。 (35, 135) を ISO 6709 形式で表現すると、+35+135/ になる。

ただし、この文字列表現は度数の小数ではなく度分秒を使うことになっていたり、ゼロ埋めが必要な固定長の表現になっていたり、末尾にスラッシュが必要で URL との相性が悪かったりと、結構使いにくいように思う。

結論

基本的には ISO 6709 にならって latitude, longitude の順が良いのではないかと思う。 結果として日本語の「緯度経度」と順序が一致していて便利でもある。

一方、ISO 6709 の文字列表現は(特に Web では)使いにくいので、無理に準拠する必要はないと考えている。 現実的には Google Maps の 135.678,35.890 くらいの表現で充分であることが多い。

自分が実装するときには、順序を定める必要がある場合は latitude, longitude の順序にしているが、メソッドの引数などは原則としてキーワード引数にして順序についての知識を排除するようにしている。