コンテンツにスキップ

よくある質問

座標の順序は?

すべての tzf 実装は (経度,緯度) の順序を使用します——GeoJSON やほとんどの地理 API と同様です。 一部のシステム(Google Maps URL、多くの地理教科書など)では (緯度,経度) を使用するため、値を渡す前に再確認してください。

tzf は 100% 正確ですか?

デフォルトではいいえ。tzf はデータサイズを削減するためにポリゴン簡略化(Ramer–Douglas–Peucker)を適用しており、 タイムゾーン境界から約 1 km 以内の地点では誤った結果を返す可能性があります。

100% 正確な検索には、完全データセットを使用してください:

  • Go: tzf.NewFullFinder()
  • Rust: full feature を有効にする(はじめるを参照)
  • Python/tzfpy: 完全精度モードは現在サポートされていません

tzf はどのくらいメモリを使用しますか?

モード (Go)メモリ
DefaultFinder(トポロジー簡略化 + プレインデックス)~75 MB
Finder(トポロジー簡略化)~66 MB
FullFinder(完全精度 + プレインデックス)~422 MB

Rust のメモリも同様です;YStripes インデックスを有効にすると約 30–40 MB 増加します。 Rust の完全精度モード(YStripes 有効)は約 560 MB を使用します。 Python は内部的に Rust バイナリを使用するため、メモリ使用量は Rust のデフォルトモードと一致します。

初期化が遅いのはなぜですか?

NewDefaultFinder() / DefaultFinder::new() の最初の呼び出しは、バイナリタイムゾーンデータを読み込んで解析します。 これは一度限りのコストです——その後の検索は非常に高速です。 常に一度だけ初期化し、インスタンスを再利用してください。グローバル変数や lazy_static を使用するパターンについては、各言語ガイドを参照してください。

タイムゾーンデータはどのくらいの頻度で更新されますか?

tzf は evansiroky/timezone-boundary-builder 経由で IANA タイムゾーンデータベースのリリースを追跡しています。 処理済みデータは ringsaturn/tzf-rel で公開されています。 ライブラリのリリースは各上流データリリースの直後に行われます。

Finder、FuzzyFinder、DefaultFinder の違いは何ですか?

クラス使用データカバレッジ速度
FuzzyFinderタイルプレインデックスのみ内部タイルのみ——境界/未カバーエリアは結果なし最速
Finderポリゴンデータ全世界をカバー高速
DefaultFinderタイルプレインデックス + ポリゴン全世界をカバー高速

FuzzyFinder プレインデックスは、単一のタイムゾーンポリゴン内に完全に収まるタイルのみを保存します。 クエリポイントがカバーされたタイル内にある場合、すぐに正しいタイムゾーンを返します。 カバーされていないエリア(境界付近、海岸線、疎な地域)では、推測せずに結果なしを返します。 「近似」ではありません:結果は正確ですが、カバレッジが不完全です。

DefaultFinder(推奨)は、最初にタイルプレインデックスを試み、結果が返されなかった場合に完全な ポリゴン検索にフォールバックします。これにより、ほとんどの世界都市クエリでほぼ一定の速度を保ちながら、 すべての座標に対して正確な結果を得られます。

tzf はどのようなライセンスですか?

コードは MIT ライセンスです。タイムゾーンデータ(tzf-rel 経由で配布)は上流の evansiroky/timezone-boundary-builder と同様に ODbL です。

また、tzftzf-rstzfpy には「反 CSDN ライセンス」条項が付随しており、CSDN プラットフォームでの使用を禁止しています;この条項は他のユースケースに影響しません。

詳細は ライセンス を参照してください。

最終更新日