9
votes

Comment trouver le nom de pays du nom de la ville à Java?

Je veux récupérer le nom du pays de Twitter de l'utilisateur.

Pour cela, j'ai eu l'emplacement de l'étiquette dans lequel certains utilisateurs ont écrit le nom de leur pays, certains ont écrit le nom de leur ville et certains ont également écrit le nom de leur état.

Je veux obtenir le nom du pays pour tous les utilisateurs. Comment puis-je faire cela?


0 commentaires

4 Réponses :


4
votes

Vous pouvez utiliser le script d'autocomplete de Google Maps pour obtenir des pays possibles pour une ville. Cela fonctionne comme ceci: lorsque vous tapez "New York", cela vous suggère "New York, USA". Mais rappelez-vous que vous ne pouvez pas toujours obtenir le nom de pays du nom de la ville: il y a un Berlin en Allemagne et dans le Connecticut également.


0 commentaires

10
votes

Une manière d'utiliser l'API Google Maps (bien que cela puisse être surchargé). Par exemple, supposons que quelqu'un ait répertorié leur pays comme "Jakarta" (en fait une ville indonésienne). Ensuite, vous soumettez la demande d'API de cartes suivantes:

http://maps.googleapis.com/maps/api/geocode/json ? adresse = jakarta & capteur = faux

qui retourne un objet JSON. Vous analysez ensuite avec votre analyseur JSON préféré et extrayez le champ "Nom" du champ "Composants d'adresse", avec le type "Pays". Dans ce cas, c'est "Indonésie".


3 commentaires

Peut-être que cela indique l'évidence, mais vous devez conserver une liste de noms de pays reconnus (et des mal orthographiques communs) afin que vous ne faites qu'une demande d'API de cartes lorsque vous ne reconnaissez pas déjà le pays.


Gardez à l'esprit, qu'il existe des Limites d'utilisation , comme vous devez Afficher les résultats sur une carte (Google) ...;)


C'est intéressant - je n'ai pas réalisé que vous deviez afficher les résultats sur une carte. Bien sûr, il n'utilise pas réellement les géocodes, en l'utilisant simplement comme une table de recherche très fantaisie. Après avoir réfléchi pour une seconde, bien que ce soit un moyen «rapide et sale» d'obtenir des résultats, ce n'est évidemment pas la solution correcte. Un meilleur moyen serait de construire votre propre table de recherche (peut-être utiliser l'API de cartes pour le peupler ...)



5
votes

Essayez de trouver un fichier de ressources ou une base de données avec une licence pratique (comme geoworldmap d'ici ). Vous n'obtiendrez pas d'infos précis des utilisateurs de Twitter, et ce qu'ils écrivent dans leur profil pourrait être un problème. J'utiliserais donc une ressource statique et décoder autant d'emplacements que possible.


0 commentaires

4
votes

Vous pouvez utiliser Geo Tables à YQL: http : //developer.yahoo.com/yql/console/#h=Select%20*%20From%20GEO.PLACES%20OWE%20TEXT%3D%22JAKARTA%22

Exemple de requête: Sélectionnez * à partir de geo.places où texte = "jakarta"


0 commentaires