2010-08-01 8 views
10

Eventuali duplicati:
Database of Countries and their CitiesDatabase di paese/stato/città?

Ok, questa è una domanda non tecnico. Sto creando una directory aziendale e vorrei classificare gli elenchi in base alla posizione. Invece di offrire agli utenti un'opzione per accedere al luogo, fornirò loro un elenco di posizioni che seguono un formato Paese/Stato/Città. Ho provato GeoWorldMap di GeoBytes. All'inizio sembrava promettente e ho capito che sarebbe stato esattamente ciò che avrebbe fatto il lavoro fino a quando ho realizzato che forniva un elenco di circa 275 paesi anche se il numero di paesi riconosciuti è compreso tra 192 e 195. Quindi non sono sicuro il extra 80 paesi. Quando ho realizzato questo problema, sono andato sul loro sito web per fare qualche calcolo e ho scoperto che la loro lista veniva aggiornata regolarmente. Quindi questo mi porta una domanda. È possibile trovare un database accurato che elenchi tutte le possibili posizioni? Che cosa usano la maggior parte degli sviluppatori qui per qualcosa di simile?

+1

Penso che la maggior parte degli sviluppatori consentirebbe all'utente di inserire la posizione. A meno che tu non stia facendo una sorta di geocodifica (dove stai usando quella posizione, esegui una sorta di algebra geografica) e devi associare i metadati a una posizione specifica (e l'utente non può o non deve fornirglielo), non hai bisogno di confondere il tuo database con tutti questi dati. Allo stesso modo, le persone non vorranno scorrere un ** enorme ** elenco di posizioni quando potrebbero semplicemente digitarlo. –

+2

Lo scorrimento non sarà un problema perché userò AJAX. Non eseguirò alcuna geocodifica, ma gli elenchi verranno categorizzati in base alla posizione, quindi è necessaria l'associazione. E poiché l'associazione corretta è importante, l'input fornito dall'utente non può essere considerato attendibile :(Ho visto in passato come gli utenti immettono valori relativi alle località. Prendiamo ad esempio i paesi. Potrebbero entrare negli USA come Stati Uniti, Stati Uniti, Stati Uniti e Stati Uniti d'America o solo America, lo stesso vale per gli stati: entrerebbero in Georgia come Georgia o GA.Un'altra questione potrebbe essere l'ortografia di errori/errori di battitura e l'uso improprio delle maiuscole –

+0

Suona come una domanda meglio posta su http://gis.stackexchange.com – fmark

risposta

7

Ottima domanda. Penso che lo GeoPlanet di Yahoo! Possa essere molto utile per questo: forniscono un elenco abbastanza esaustivo di luoghi e le relazioni gerarchiche tra di loro, e puoi scaricare l'elenco di nomi o utilizzare la loro API.

Altri dizionari geografici (è il termine che stai cercando) includono GeoNames, che ha anche dati scaricabili gratuitamente. (Sono sicuro che StackOverflow o anche una ricerca su Google potrebbe ottenere più opzioni lungo le stesse linee.)

Inoltre, se hai intenzione di creare un'interfaccia utente per consentire agli utenti di selezionare dal tuo elenco di luoghi, mi piace suggerire il plug-in Freebase Suggest, un plug-in jQuery che costringerà gli utenti a selezionare da una determinata categoria (nel tuo caso, i paesi, ad esempio) e fornire una bella interfaccia utente per scegliere da quale database semantico di Freebase ritiene corretto. Fornisce anche un contesto simile a un wiki per aiutare con la disambiguazione.

+0

Freebase Il suggerimento è bello come il tutto esaurito, ma è un po 'complicato se si vuole discernere quali regioni sono incluse in altre regioni ai fini della ricerca. Ad esempio, se un utente dichiara di essere in Boulder, le ricerche di persone in Colorado, Stati Uniti, Nord America o nel mondo dovrebbero includere tale utente.Immagino che Freebase abbia questi dati, ma per farlo devi usare le loro API dei servizi web e sospetto che non potresti farlo in modo efficiente senza possedere una copia locale della gerarchia della regione. – MikeJ

+0

@MikeJ Diventa decisamente più complicato il tuo caso d'uso. Vale la pena notare che l'RDF che Freebase fornisce per le posizioni include le proprietà posizione 'contenuteBy', quindi dovrebbe essere possibile attraversare le gerarchie geografiche con un parser RDF (per Boulder, Freebase ha Boulder County, Colorado e gli Stati Uniti elencati come contenitori) . Se l'ontologia della posizione di Freebase è abbastanza buona per i tuoi scopi è un'altra domanda; Penso che Yahoo! ha fatto un buon lavoro con GeoPlanet nell'affrontare questi problemi. – npdoty

+1

Trovato la tua risposta qui (http://gis.stackexchange.com/questions/603/is-a-country-state-city-database-available), ma ho cercato questa risposta @ SO solo per upvote! –