2010-03-03 9 views
2

Je cherche à simplifier l'entrée d'adresse dans un système où la zone de texte de la ville a autosuggest initialement rempli par la géolocalisation de l'utilisateur. Dans le passé, il semblait que l'autosuggestion du nom de la ville était trop coûteuse sans connaître d'abord la province/l'état/le pays, mais cela n'a pas de sens d'obliger l'utilisateur à entrer l'adresse à l'envers. . D'un autre côté, ne pas autosuggérer le nom de la ville signifie que nous nous retrouvons avec toutes sortes d'entrées bizarres et merveilleuses pour les villes mal orthographiées du monde entier. Je me demandais si un service que je peux interroger répondrait automatiquement avec les noms de villes les plus appropriés en fonction non seulement de ce que l'utilisateur saisit dans la zone de texte, mais de l'emplacement de cet utilisateur en fonction du pays et de la limite politique ils tombent à l'intérieur? Par exemple, si je suis au Canada [comme je suis] et que j'entre 'Mi', je serais présenté avec toutes les villes du Canada commençant par 'Mi' jusqu'à ce qu'il soit déterminé que l'information que j'entrais était À partir de ce moment, le Canada utiliserait le prochain pays le plus susceptible d'être configuré en fonction de notre mode d'utilisation - c.-à-d. qu'il vérifierait ensuite les États-Unis, suivi du Mexique et d'autres destinations moins probables. Je peux écrire tout cela moi-même si j'avais la base de données mais je ne sais pas où je peux en trouver un et je soupçonne qu'il serait moins évolutif que d'interroger un service préexistant sur le web.Existe-t-il un système public de géolocalisation que je peux interroger pour connaître les noms des villes locales?

+0

USPS (US Postal Service) a un code postal API qui comprend l'emplacement géographique. Mais je ne sais pas si cela inclut international. –

Répondre

1

semble que MaxMind offre un free database que vous pouvez télécharger au format CSV:

Il y a une démo en ligne pour tester un peu si vous le souhaitez, mais aucun moyen de l'interroger à travers un service Web.

IPInfoDB a également leur base de données disponible pour download - ils ont an XML API, mais il prend uniquement en charge la recherche de la ville/pays pour une adresse IP particulière. Vous essayez de faire quelque chose d'un peu plus large que cela, en cherchant chaque ville dans un pays particulier, avec un pays sélectionné en fonction de la propriété intellectuelle. Je ne m'attendrais pas à ce qu'il y ait un service web pour ça, c'est une exigence assez spécifique.

Modifié pour ajouter: Vous pouvez utiliser l'API IPInfoDB pour rechercher le pays, puis générer les suggestions de saisie semi-automatique à partir d'une base de données de pays/ville locale. De cette façon, toute la géolocalisation IP n'aurait pas besoin d'être faite localement. Il existe différents endroits où vous pouvez obtenir une liste de villes dans un pays en particulier. Par exemple, voici quelques lists complets maintenus par la National Geospatial-Intelligence Agency