1. ホーム
  2. geolocation

[解決済み] 緯度と経度の座標を使用して、ある場所からタイムゾーンを取得する方法は?

2022-03-26 19:17:09

質問

ある場所の緯度と経度があるとき、その場所で有効なタイムゾーンを知るにはどうしたらよいでしょうか?

ほとんどの場合、IANA/オルソンタイムゾーンIDを探しますが、サービスによってはUTCオフセットのみ、または他のタイムゾーン識別子を返す場合もあります。 詳しくは タイムゾーンタグ情報 をご覧ください。

解決方法は?

タイムゾーン位置情報ウェブサービス

タイムゾーン境界の生データ

以下のプロジェクトは、以前はタイムゾーン境界データのソースでしたが、現在は活発にメンテナンスされていません。

  • tz_world - Eric Muller氏によるオリジナルのシェイプファイルデータ
  • タイムゾーン - WOEDBデータがマージされたGeoJSON版

タイムゾーンジオロケーションのオフライン実装

タイムゾーンバウンダリービルダーデータを使用する実装について

古い tz_world データを使用する実装

Webサービスのいずれかを呼び出すライブラリ

  • タイムゾーン - GeoNamesを呼び出すRuby gem
  • アスクジオ は、Javaや.Netから呼び出すための独自のライブラリを持っています。
  • ジオネーム は、あらゆるもののためのクライアントライブラリを持っています。

セルフホスト・ウェブサービス

その他のアイデア

他にご存知の方がいらっしゃいましたら、このリストを更新してください。

また、最近接都市アプローチでは、単なる近似値であり、正しい結果が得られるとは限らないことに注意してください。

Windowsゾーンへの変換

このリストにあるほとんどのメソッドは、IANAタイムゾーンIDを返します。 で使用するために Windows のタイムゾーンに変換する必要がある場合、そのタイムゾーンの ID を返します。 TimeZoneInfo クラスを.NETで使用する場合は タイムゾーンコンバーター ライブラリを使用します。

zone.tabは使用しないでください。

tz データベース というファイルが含まれています。 zone.tab . このファイルは、主にユーザーが選択できるようにタイムゾーンのリストを表示するために使用されます。 各タイムゾーンの基準となる点の緯度と経度の座標が含まれています。 これにより、これらのポイントを強調した地図を作成することができます。 例えば、次のインタラクティブ・マップをご覧ください。 モーメントタイムゾーンホームページ .

このデータを使って、緯度と経度の座標からタイムゾーンを割り出したいと思うかもしれませんが、これらは点であり、境界線ではないことを考慮に入れてください。 最も良いのは、このデータを使って 最も近い が、多くの場合、正しい点ではないだろう。

次のような例を考えてみましょう。

2つの四角は異なるタイムゾーンを表し、それぞれの四角の中の黒い点はzone.tabで見られるような基準地である。 青い点は、タイムゾーンを探そうとしている場所を表しています。 この場所は明らかに左のオレンジ色のゾーン内にありますが、基準点からの最短距離だけを見ると、右の緑色のゾーンに解決されます。