7
votes

Alternative à Google Maps Geolocation API

Je travaille sur un projet qui implique un énorme volume de données en temps réel par seconde (réalisée par WebSockets). Pour cette raison, cela ne peut pas gérer appelant l'API de Google pour convertir une région de la ville + en une coordonnée longlat. Je reçois environ 1 à 100 taux de réussite. Existe-t-il une alternative illimitée à la ville et à la région de coordonner le service de l'API Google? Idéalement, un réseau JSON stocké localement de ces données?


0 commentaires

3 Réponses :


3
votes

Jetez un coup d'oeil à Datasciencetoolkit.org. Ils offrent une image / AMI VM que vous pouvez héberger sur EC2 et faire des appels de géolocalisation à votre propre serveur et, partant, aucune limite d'API.

Il y a aussi une API de géolocalisation de Yahoo qui a des limites plus élevées que celle de Google.


0 commentaires

2
votes

généralement lorsque vous traitez avec un grand nombre de points de données, vous les gérez une fois sur le serveur. Ensuite, vous pouvez diffuser les Lat / Longs à vos clients prêts à être utilisés.

Google a un Service Web de géocodage Vous pouvez utiliser à partir de votre serveur, mais Il y a une limite de demande de 2 500 / jour. Si cela ne fonctionnera pas, vous pouvez également consulter OSM 'S Nominatim; MapQuest hôte un service Web sans limites.


2 commentaires

Une solution n'augmente pas la limite d'appel de l'API, nous pourrions toujours acheter plus d'allocation, mais c'est que la demande élevée / seconde n'est tout simplement pas réalisable. Je conviens que nous avons besoin de ces informations dans les données en streaming, mais qui est actuellement hors de nos mains, j'espérais un lien avec un éventail ouvert de ces informations.


Si vous ne pouvez pas modifier la source de données elle-même, vous pouvez toujours proxy le flux de données. Demandez à votre serveur de se connecter à la source de données, faites le géocodage, puis diffusez les données + coordonnées aux clients.



7
votes

Vous pouvez utiliser un service fourni par Yahoo appelé YQL. Ce service est gratuit pour un nombre limité de demandes, jusqu'à 100 000 par jour. Ensuite, vous pouvez récupérer la latitude et la longitude de la réponse XML à Query / Résultats / Place / Centroid Code>.

Une chose que j'ai remarquée avec ce service est que les noms de ville doivent être exacts, et il est possible que là-bas soit plusieurs résultats. P>

http://developer.yahoo .COM / YQL / P>

Exemple requête YQL: P>

http://query.yahooapis.com/v1/public/yql?q=Select * De geo.places où texte = "Seattle" et placetypename = "Town" Code> P>

Réponse XML: P>

<?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 -->


0 commentaires