都市、州/県、および国のリストがあり、それぞれのタイムゾーンを簡単に見つける必要があります。具体的には、どのWindows TimeZoneがマップされているかを知る必要があります。これまでのところ、これは難しいプロセスでした。都市を何かに渡し、タイムゾーンを戻す簡単な方法がないためです(タイムゾーンはオフセットであり、タイムゾーンが夏時間をサポートしているかどうか)。
現在のフローは http://www.batchgeocode.com を使用して都市の緯度/経度を取得し(実際にはYahooサービスを呼び出します)、次に http:// www.EarthTools.org は、オフセットにマッピングされるタイムゾーン文字を取得します。問題は、yahooサービスが間違った経度/緯度を返すことがあり、earthtools.orgがDST情報について多くを知らないため、正しいTimeZone Idへのマッピングは退屈な手動プロセスです。
私はこれを行った最初の人になることはできません-誰かがより良い方法を知っていますか、または必要な情報を持っているリストがありますか?
ありがとう。
興味深い質問です!これらの他の3つのSO投稿( 41504 、 55901 および 23702 )は、いくつかのリードに言及しています。 Olsonデータベース (詳細については Wikipediaのエントリ を参照)、しかし、よりアルゴリズム的/プログラム的に見えます(たとえば、郡名を知っている場合、特定の郡の規則があります) インディアナ )。
私はEarthToolsを見てみましたが、それは 失敗St.Pierre/Miquelon 、良いテストケースの1つです(-3:00ではなく、近くのニューファンドランドの-3:30 EarthToolsの言うとおりです)。
有望なオプション: worldtimeengine.com には無料のインタラクティブバージョンと安価なAPI(英国ポンドあたり5000クエリ)がありますが、APIは入力としてlat、longクエリのみを対象とします(場所としてではありません)入力、これはインタラクティブバージョンにあります)。
ベストリード:geonames.org をご覧ください。使用できる素敵なリッチAPIがありますが、また、無料(低速)バージョンと、パフォーマンス向上のための商用バージョンの両方があります。
追伸ここにいくつかの良いテストケースがあります( worldtimezone.com および Wikipediaのタイムゾーンのリスト から、 タイムゾーンのマップ も例証です):
moment-timezone は、タイムゾーン計算用のJavaScriptライブラリです。
国、タイムゾーム、オフセットをリンクするすべてのタイムゾーンデータはすべて json形式で利用可能 です。
現在のワークフローの2番目の部分を支援できます。 lat/longをタイムゾーンにマップするJavaライブラリを作成しました。データベースはソースコードでエンコードされています。
ソースコードは基本的にif文の巨大なツリーです:if(lat> = -33.0)if(lng <-151.5)... else ...など。それはただ一つのクラスです。したがって、C#を使用する場合、移植するのは簡単です。
http://www.edval.biz/mapping-lat-lng-s-to-timezones
22kmの精度です。