2010-04-01 6 views
7

Je souhaite extraire la latitude et la longitude d'un ensemble d'environ 50 à 100 broches dans une page Web Google Maps. Je ne contrôle pas la page et je n'ai pas besoin de le faire plus d'une fois donc je cherche quelque chose de rapide et sale. J'ai FireFox avec FireBug ainsi que Chrome et tout ce dont j'ai besoin est quelque chose qui est plus facile que de re-taper tous les numéros.Comment extraire le lat/lng des pins dans google maps?

+1

pourquoi voudriez-vous voler les données? – Jonathan

+0

@Jonathan: Pourquoi supposez-vous que je le vole? D'après ce que j'ai dit, cela pourrait provenir d'un ensemble de données du domaine public. (En fait, j'ai toutes les raisons de croire que le propriétaire serait d'accord pour extraire les données.La page est accessible au public.) – BCS

+4

S'il s'agit d'un jeu de données public, pourquoi ne pas l'obtenir plutôt que d'écrire un script pour exploiter les données? à partir d'une application? Une page accessible au public ne signifie pas que les données sont libres ... – Jonathan

Répondre

2

sauver juste le fichier .html et l'utilisation des œuvres regex:

Ces deux regex pourrait être un bon point de départ:

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

En fonction du type de la carte et si les broches sont réglées par la latitude et la longitude ou par l'adresse, il pourrait même fonctionner pour obtenir simplement le lien (cliquez sur "Lien" sur la page Google Maps, l'URL dans le navigateur pourrait ne pas être le sam) et recherchez le "sll = [.. .]" paramètres.

+0

OK, maintenant comment puis-je extraire les liens? Gardez à l'esprit que j'avais plus que ce qui peut être facilement fait à la main. – BCS

+0

Quels liens? Je pensais que tu voulais la latitude/longitude. – Dominik

14

Cliquez simplement sur le lien raccourci sur la carte pour récupérer une URL pour la carte avec les broches.

Ensuite, ajoutez &output=kml à la fin de cette URL et utilisez le lien pour récupérer un fichier kml contenant toutes les données de broche.

Ce fichier kml est en fait au format xml donc l'analyse devrait être facile, il vous suffit de rechercher les éléments <coordinates> qui contiennent les données de latitude et de longitude dont vous avez besoin.

Le format kml est documenté ici: http://code.google.com/apis/kml/documentation/kmlreference.html

+0

une simple regex pour extraire les coordonnées serait . * FixerMark

+4

Cela ne marche plus. Maintenant, le truc est: https://www.google.com/maps/d/kml?mid={map_id} Par exemple: https://www.google.com/maps/d/kml ? mid = 1lL6Ylpo7P3HnANcHTAzbH5hEx-E – brunetton

0

Google a changé beaucoup la façon dont vous pouvez extraire des informations sur google.maps et a fixé des limites comme le nombre de requêtes par jour.

Pour extraire le lat et le lon de Google Maps, vous avez besoin d'un peu de connaissances sur le code HMTL et la manipulation de fichiers JSON/XML.

Je vous recommande d'extraire les données à l'aide de "Google Places API" c'est TRÈS FACILE! et vous pouvez extraire environ 150k emplacements par jour gratuitement.Vous devez obtenir un compte, activer vos privilèges des lieux de l'API (activer/désactiver buttom), vous obtenez secrète KEY puis utiliser une URL simple pour extraire le fichier JSON/XML Voici deux liens pour que:.

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

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

Si vous voulez DETAIL info sur les coordonnées que vous obtiendrez, allez à la section "Requesting Place Details" dans le deuxième lien, qui vous donne des informations sur le type de site, le numéro de téléphone et tous les commentaires que les utilisateurs ont faits, s'ils sont disponibles.

Excellent codage et salutations!