チェックインを追加するときにチェックインAPIを見ると、日時やタイムゾーンの情報を渡す必要はありませんが、ユーザーのチェックイン履歴を照会すると、チェックインが行われた場所のタイムゾーンを示すタイムゾーンフィールドが返されます。どういうわけか彼らはlat/lngか何かでそれを調べていると思います。誰かが彼らがそれをどのようにやっているのか具体的に知っていますか?
1 に答える
1
これは間違いなく、チェックイン場所に対する場所ベースの検索です。
私の推測では、会場が作成されたときに、会場のタイムゾーンを計算してキャッシュします。この情報を、都市、[州]、国などのデータをキーとする文字列へのタプルのマップとして、memcachedなどの分散ハッシュテーブルデータベースに保存します。各タイムゾーン(および他の多くの地理データ)で使用可能な境界ポリゴンを維持し、緯度/経度に基づいてそれをクエリするためのサービスを提供します。これは通常、ジオコーディングサービスと呼ばれます。メモリの制約と使用量の変動性に応じて、このサービスからタプルマッピングを遅延的に入力します(つまり、ユーザーが要求した場合のみ)。
会場のないチェックインの場合、おそらく緯度/経度に基づいて1回計算し、他の人が同じ場所にチェックインする場合に備えて、この情報をより短い期間キャッシュします。タイムゾーンフィールドはオプションであり、ジオコーディングサービスが過負荷の場合は入力しないという事実も、日常的に利用しているに違いありません。
この種のクエリを処理できるサービスを探している場合は、http://www.geonames.com(ドキュメント)を確認してください。
于 2011-06-01T23:36:51.450 に答える