これが重複した質問のように見えることは理解していますが、私の問題は少し異なり、まだ投稿されたものは何も役に立ちませんでした。
ユーザーの都市を検出する必要があります。現在、サードパーティの API を使用して、ユーザーの IP を都市名にエンコードしています。しかし、それは本当に不正確です (ほとんどすべての場所が首都として示されている私の国ネパールを考えてみてください)。
HTML5 の geo-location API を試してみましたが、ユーザーの地理座標しかわかりません。Google の Geocoding API を使用してみましたが、一貫した形式の結果が得られませんでした (おそらく、国によって住所の書き方が異なるためです)。つまり、結果の JSON オブジェクトでは、米国の住所の場合、5 番目のオブジェクトは都市名を示し、英国の住所の場合は 4 番目のオブジェクトであり、インドの住所の場合は別のオブジェクトになります。
例えば、
見る
http://maps.googleapis.com/maps/api/geocode/json?latlng=51.441944,%20-0.945556&sensor=true
対
http://maps.googleapis.com/maps/api/geocode/json?latlng=42.155101995,-71.10080&sensor=true .
この不一致により、コードで結果の JSON から都市名を解析することが非常に困難になります。
同じ問題が、座標から都市を取得する方法のコメントで提起されていますか? しかし、解決策はありません。
理想的には、ユーザーの地理座標を都市名に何らかの方法でマッピングし (どのように?)、IP ベースの検出をフォールバックとしてのみ使用したいと考えています。ただし、座標から名前へのマッピング (Google API) で見つけた唯一の解決策は、私の場合は機能しません。
ありがとう!