2010-04-01 9 views
7

Quiero extraer la latitud y la longitud de un conjunto de aproximadamente 50-100 pines en una página web de Google Maps. No controlo la página y no necesito hacerlo más de una vez, así que estoy buscando algo rápido y sucio. Tengo FireFox con FireBug y con Chrome, y todo lo que necesito es algo más fácil que volver a escribir todos los números.¿Cómo extraer el lat/lng de los pines en google maps?

+1

¿por qué le gustaría robar los datos? – Jonathan

+0

@Jonathan: ¿Por qué supone que lo estaría robando? Por lo que dije, podría ser de un conjunto de datos de dominio público. (De hecho, tengo todas las razones para creer que el propietario estaría bien si extraigo los datos. La página está públicamente disponible.) – BCS

+4

Si se trata de un conjunto de datos públicos, ¿por qué no obtenerlo en lugar de escribir un script para cultivar los datos? desde dentro de una aplicación? Una página disponible públicamente no significa que los datos que contiene son gratuitos ... – Jonathan

Respuesta

2

Sólo guardar el archivo .html y el uso de obras de expresiones regulares:

Estas dos expresiones regulares podría ser buenos puntos de partida:

@[0-9]+\.[0-9]+,-[0-9]+.[0-9]+",geocode:"",sxti:"[[email protected] .]+" 
{id:"[A-Zloc0-9]+",fid 
0

Dependiendo del tipo del mapa y si se establecen los pasadores por latitud y longitud o por dirección, incluso podría funcionar para obtener el enlace (haga clic en "Enlace" en la página de Google Maps, la URL en el navegador podría no ser la misma) y busque "sll = [.. .] "parámetros.

+0

OK, ahora ¿cómo puedo extraer los enlaces? Tenga en cuenta que tenía más de lo que se puede hacer fácilmente a mano. – BCS

+0

¿Qué enlaces? Pensé que querías la latitud/longitud. – Dominik

14

Simplemente haga clic en el enlace acceso directo en el mapa es posible recuperar una dirección URL para el mapa con alfileres en.

A continuación añadir &output=kml al final de esta URL y usar el enlace para recuperar un archivo KML que contiene todos los datos de pin.

Este archivo kml está realmente en formato xml, por lo que su análisis debe ser fácil, solo tiene que buscar elementos <coordinates> que contengan los datos de latitud y longitud que necesita.

El formato KML es documentado aquí: http://code.google.com/apis/kml/documentation/kmlreference.html

+0

una expresión regular simple para extraer las coordenadas sería . * FixerMark

+4

Esto ya no funciona. Ahora el truco es: https://www.google.com/maps/d/kml?mid={map_id} Por ejemplo: https://www.google.com/maps/d/kml ? mid = 1lL6Ylpo7P3HnANcHTAzbH5hEx-E – brunetton

0

Google tiene cambiar mucho la forma en que se puede extraer información sobre google.maps y ha establecido algunas limitaciones como el número de consultas por día.

Para extraer el lat y lon de los mapas de Google necesita un poco de conocimiento sobre el código HMTL y la manipulación de archivos JSON/XML. (todo se puede encontrar en muchos tutoriales.

Le recomiendo que extraiga los datos utilizando la "API de Google Places", es MUY FÁCIL y puede extraer aproximadamente 150k lugares por día de forma gratuita. Debe obtener una cuenta, activar sus privilegios de Lugares de API (activar/desactivar el boton), se obtiene la clave secreta y luego usar una URL sencilla para extraer el archivo/XML JSON Aquí hay dos grandes enlaces para que:.

[1] https://developers.google.com/places/documentation/search?hl=en

[2] https://developers.google.com/places/training/basic-place-search?hl=en

Si desea información DETALLADA acerca de las coordenadas que obtendrá, vaya al sección "Solicitud de detalles del lugar" en el segundo enlace, que le brinda información sobre qué tipo de sitio es ese, el número de teléfono y todos los comentarios que los usuarios hicieron, si están disponibles.

¡Excelente codificación y saludos!

Cuestiones relacionadas