Domanda

Esiste un modo per elencare a livello di programmazione tutte le voci di Wikipedia con tag geografici in un raggio di un punto lungo / lat? Sto pensando che questo sia possibile con l'API di google maps ma sono interessato a qualsiasi metodo. NOTA: non desidero visualizzare una googlemap.

È stato utile?

Soluzione

Sì, è possibile. La parte difficile è:

(1) Wikipedia per lo screen-scraping (cattiva idea, a meno che tu non abbia già un (piccolo) elenco di pagine target)
(2) Download e analisi dell'enorme set di dati di Wikipedia (idea migliore)

Una volta che hai coordinate lat / long, che presumo siano nel formato geotag della pagina wiki, puoi usare formula del grande cerchio per calcolare le distanze relative e bypassare completamente l'API di Google.

La morale di questa storia? Quando hai a che fare con insiemi di dati così enormi, vorrai fare il più possibile offline.

Altri suggerimenti

Ho risolto un problema leggermente simile utilizzando GeoNames webservices .

Puoi usare il servizio web per richiedere città e così via. C'è una limitazione per IP che non puoi superare.

Ho cercato un po 'di più e c'è qualcosa di interessante per te. Il servizio web si chiama findNearByWikipedia . Potrebbe essere la cosa che stai cercando ...

Un'altra opzione è l'utilizzo dell'interfaccia DbPedia SPARQL. Ad esempio, la seguente query SPARQL ottiene articoli di Wikipedia all'interno del riquadro di delimitazione limitati da coordinate.

Librerie SPARQL ampiamente disponibili, ad esempio per Interfaccia endpoint SPARQL su Python

Per testarlo, basta incollare la query qui sotto in questo editor di query online:

http://dbpedia.org/sparql

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX onto: <http://dbpedia.org/ontology/> 

SELECT * WHERE {
?s a onto:Place .
?s geo:lat ?lat .
?s geo:long ?long .
FILTER ( ?long > 30.3 && ?long < 30.5 && ?lat > 50.4 && ?lat < 50.5)
} 

LIMIT 100

Ottiene il seguente risultato:

"s","lat","long"
"http://dbpedia.org/resource/Kotsiubynske","50.48972320556641","30.32888793945312"
"http://dbpedia.org/resource/Akademmistechko_%28Kiev_Metro%29","50.46555709838867","30.35499954223633"
"http://dbpedia.org/resource/Zhytomyrska_%28Kiev_Metro%29","50.45583343505859","30.36416625976562"
"http://dbpedia.org/resource/Sviatoshyn_Airfield","50.47833251953125","30.38500022888184"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top