3

緯度/経度のセットを指定して、自分がいる郡を見つけることができる Web API を探しています。Android GeoCoder を介して実行できることはわかっていますが、次のコードを使用して都市にある自宅の場所からでも結果に満足できませんでした。場所は null を返しました。

addresses = geocoder.getFromLocation(mLocation.getLatitude(), mLocation.getLongitude(), 1);
address=addresses.get(0);
Log.v(TAG,""+address.getSubAdminArea());

住所、州、市は見つかりましたが、郡は見つかりませんでした。

最終的には、舗装された道路から遠く離れている可能性がある状況でこれが機能することを望んでいますが、それでも自分がどの郡にいるのかを知っています。都市、私は田舎の設定で自分がどこにいるのかを理解するつもりはありません. 私はこのサービスにお金を払いたくありませんが、サービスが十分であれば喜んで支払います。私は Web API を使用したいのですが、その遠隔地でインターネットにアクセスする必要があることを明らかに受け入れます。

完全なアプリケーションは、優先順位に従って次の要件を満たします。

  1. 道路を必要とせず、あらゆる場所で非常に確実に作業
  2. 米国での機能。
  3. 郡に相当する任意の国で作業し、技術的な使用を優先します。
  4. すばやく作業
  5. 1 日最低 1000 回までの通話が無料。
  6. 州情報と郵便番号も取得します。
  7. もちろん、インターネットアクセスを前提として、小さな無人島でも動作します。
4

3 に答える 3

1

ノミナティムを試すことができます。すべての要件を満たす必要があります。OpenStreetMap のデータを使用し、ジオコーディングジオコーディングが可能です。このリバース ジオコーディング クエリの例を参照してください。

http://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1

パラメータを変更すると、XML の代わりに JSON を返すこともできformatます。

OSM の公式 Nominatim インスタンスは、寄贈されたサーバー上で実行されるため、かなり厳格な使用ポリシーがあります。ただし、そのような制限のない代替インスタンスがあります。たとえば、MapQuestによって提供されるインスタンスです。もちろん、ローカルインストールも可能です。

于 2013-10-11T06:59:13.680 に答える
0

精度と API 呼び出しの両方を管理するには、結合アプローチが最適であることがわかりました。私は少し仕事をしてきましたが、これまでのところ、次の 4 つのサービスを順番に使用しています。

  1. Android のジオコーダー
  2. http://developer.mapquest.com/
  3. https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding
  4. http://www.geonames.org/maps/us-reverse-geocoder.html#findNearestAddress

まだ他にも取り組んでいますが、これまでに入力した典型的なアドレスのすべてで機能するようです。

これらのうち、Map Quest が全体的に最もうまく機能しているように見えます。それは、地域がどの郵便番号に属しているかを把握し、郡も見つけます。全体的に満足しています。Google Maps API はhttp://maps.googleapis.com/maps/api/geocode/json?latlng=38.7451,-77.478876&sensor=falseなどのバージニア州独立都市に失敗しましたが、少しの方法で機能させることができました余分なコードの。GeoNames はバージニア独立都市を作成しました。実際、GeoNames は全体的な勝者のようですが、米国外では機能せず、周辺ケースほどうまく機能しません。

于 2013-10-12T21:31:21.987 に答える