2010-08-01 7 views
10

Possible en double:
Database of Countries and their CitiesPays/État/Ville Base de données?

Ok, celui-ci est une question non technique. Je suis en train de créer un annuaire d'entreprises et j'aimerais classer les annonces par emplacement. Au lieu de donner aux utilisateurs une option pour entrer dans le lieu, je vais leur fournir une liste d'emplacements qui suivent un format Pays/État/Ville. J'ai essayé GeoWorldMap par GeoBytes. Cela semblait prometteur au début et je pensais que c'était exactement ce qui ferait l'affaire jusqu'à ce que je me rende compte que cela fournissait une liste d'environ 275 pays, même si le nombre de pays reconnus se situe entre 192 et 195. Je ne suis donc pas sûr de le supplémentaire de 80 pays. Quand j'ai réalisé ce problème, je suis allé sur leur site web pour faire un compte et j'ai découvert que leur liste était mise à jour régulièrement. Cela me fait penser à une question. Est-il possible de trouver une base de données précise qui répertorie tous les emplacements possibles? Qu'est-ce que la plupart des développeurs utilisent ici pour quelque chose comme ça?

+1

Je pense que la plupart des développeurs permettrait à l'utilisateur d'entrer dans l'emplacement. À moins que vous n'effectuiez un type de géocodage (où vous utilisez cet emplacement, effectuez une sorte d'algèbre géographique) et que vous devez associer des métadonnées à un emplacement spécifique (et que l'utilisateur ne peut pas ou ne doit pas le fournir), vous n'avez pas besoin d'encombrer votre base de données avec toutes ces données. De même, les gens ne voudront pas faire défiler une liste ** énorme ** d'endroits où ils pourraient juste taper. –

+2

Défilement ne sera pas un problème parce que je vais utiliser AJAX. Je ne ferai pas de géocodage, mais les listes seront classées par emplacement, donc une association est requise. Et parce que l'association est importante, les données fournies par l'utilisateur ne peuvent pas être approuvées :(J'ai vu par le passé comment les utilisateurs saisissaient des valeurs relatives à des emplacements, par exemple, États-Unis, États-Unis, États-Unis Même pour les États, ils entreraient en Géorgie en tant que Géorgie ou GA.Une autre question serait des fautes d'orthographe/fautes de frappe et de capitalisation incorrecte –

+0

Semble comme une question mieux posée sur http://gis.stackexchange.com – fmark

Répondre

7

Excellente question. Je pense que le GeoPlanet de Yahoo! Peut être très utile pour cela: ils fournissent une liste assez exhaustive des lieux et des relations hiérarchiques entre eux, et vous pouvez télécharger la liste des noms ou utiliser leur API.

D'autres répertoires toponymiques (c'est le terme que vous recherchez) incluent GeoNames, qui a également des données téléchargeables gratuitement. (Je suis sûr que StackOverflow ou même une recherche Google pourrait vous obtenir plus d'options dans les mêmes lignes.)

Aussi, si vous envisagez de créer une interface utilisateur pour permettre aux utilisateurs de sélectionner dans votre liste de lieux, j'aime suggérons le plugin Freebase Suggest, un plugin jQuery qui forcera les utilisateurs à sélectionner une certaine catégorie (dans votre cas, les pays, par exemple) et qui fournira une interface utilisateur agréable pour choisir parmi les bases de données sémantiques de Freebase. Il fournit même un contexte wiki pour aider à la désambiguïsation.

+0

Freebase Suggérer est cool comme tout le sortir, mais c'est un peu difficile si vous voulez discerner quelles régions sont incluses dans d'autres régions à des fins de recherche. Par exemple, si un utilisateur dit qu'il est à Boulder, alors les recherches de personnes au Colorado, aux États-Unis, en Amérique du Nord ou dans le monde devraient inclure cet utilisateur.Je suppose que Freebase a ces données mais vous devez utiliser leurs API de services Web pour le faire, et je suppose que vous ne pourriez pas le faire efficacement sans posséder une copie locale de la hiérarchie de la région. – MikeJ

+0

@MikeJ Il devient de plus en plus épineux, plus votre cas d'utilisation est complexe. Il est à noter que le RDF que Freebase fournit pour les emplacements inclut les propriétés 'containedBy' de l'emplacement donc il devrait être possible de traverser les hiérarchies géographiques avec un analyseur RDF (pour Boulder, Freebase a Boulder County, Colorado et les États-Unis listés comme conteneurs) . Si l'ontologie d'emplacement de Freebase est assez bonne pour vos buts est une autre question; Je pense que Yahoo! a fait du bon travail avec GeoPlanet pour résoudre ces problèmes. – npdoty

+1

trouvé votre réponse ici (http://gis.stackexchange.com/questions/603/is-a-country-state-city-database-available), mais fouillé cette réponse @ SO juste pour upvote! –