7

私は1秒あたりの膨大な量のリアルタイムデータを含むプロジェクトに取り組んでいます(WebSocketによって達成されます)。このため、City+Regionをlonglat座標に変換するためのGoogleのAPIの呼び出しを処理できません。私は約1から100の成功率を得ています。Google APIのサービスを調整するためのCity&Regionの無制限の代替手段はありますか?理想的には、そのようなデータのローカルに保存されたJSON配列ですか?

4

3 に答える 3

7

Yahooが提供するYQLというサービスを利用できます。このサービスは、1日あたり最大100,000の限られた数のリクエストに対して、無料です。次に、で応答XMLから緯度と経度を取得できますquery/results/place/centroid

このサービスで私が気づいたことの1つは、都市名が正確である必要があり、複数の結果が得られる可能性があることです。

http://developer.yahoo.com/yql/

YQLクエリの例:

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM geo.places WHERE text="Seattle" and placeTypeName = "Town"

応答XML:

<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2012-07-09T16:20:40Z" yahoo:lang="en-US">
  <results>
    <place xmlns="http://where.yahooapis.com/v1/schema.rng" xml:lang="en-US" yahoo:uri="http://where.yahooapis.com/v1/place/2490383">
      <woeid>2490383</woeid>
      <placeTypeName code="7">Town</placeTypeName>
      <name>Seattle</name>
      <country code="US" type="Country">United States</country>
      <admin1 code="US-WA" type="State">Washington</admin1>
      <admin2 code="" type="County">King</admin2>
      <admin3/>
      <locality1 type="Town">Seattle</locality1>
      <locality2/>
      <postal/>
      <centroid>
        <latitude>47.603561</latitude>
        <longitude>-122.329437</longitude>
      </centroid>
      <boundingBox>
        <southWest>
          <latitude>47.422359</latitude>
          <longitude>-122.472153</longitude>
        </southWest>
        <northEast>
          <latitude>47.745071</latitude>
          <longitude>-122.176193</longitude>
        </northEast>
      </boundingBox>
      <areaRank>6</areaRank>
      <popRank>12</popRank>
    </place>
  </results>
</query>
<!-- total: 82 -->
<!-- engine5.yql.mud.yahoo.com -->
于 2012-07-09T16:50:22.533 に答える
3

datasciencetoolkit.orgをご覧ください。これらは、EC2でホストして独自のサーバーにジオロケーション呼び出しを行うことができるVMイメージ/ AMIを提供するため、APIの制限はありません。

次に、Googleよりも制限が高いYahooのgeolocationAPIもあります。

于 2012-07-09T16:21:45.647 に答える
2

通常、多数のデータポイントを処理する場合は、サーバー上でそれらを1回ジオコーディングします。次に、lat/longsをすぐに使用できるクライアントにストリーミングできます。

Googleには、サーバーから使用できるジオコーディングWebサービスがありますが、リクエストの制限は1日あたり2,500です。それでもうまくいかない場合は、OSMのノミナティムを調べることもできます。Mapquestは、制限のないWebサービスをホストします。

于 2012-07-09T16:26:03.017 に答える