2011-08-21 9 views
5

Sto cercando di creare un'app web in cui inserisci il tuo indirizzo e ti fornirà l'elenco delle fermate dell'autobus nella tua zona. Voglio utilizzare Google Maps per questo, ma non riesco a trovare il modo di usarli per questo. C'è un modo per ottenere l'elenco dei punti sulle mappe in, diciamo, in formato JSON o XML? Ho provato l'API di Google Maps Places, ma non ha funzionato in questo modo. L'unica cosa che ho trovato è questo esempio - http://gmaps-samples-v3.googlecode.com/svn/trunk/localsearch/places.html ma non è quello che mi serve.Elenco delle fermate degli autobus da Google Maps

Quindi, qualcuno lo sa?

risposta

1

Per questo è possibile utilizzare Google Fusion Tables. Dovresti inserire i dati personalmente, a meno che qualcuno non li abbia già inseriti. L'API di Google Maps supporta Google Fusion Tables.

+0

Beh, questo è l'opposto di quello di cui ho bisogno. Si tratta di dati -> punti sulla mappa, ma ho bisogno di punti su gmap -> dati :) Ma grazie per il suggerimento, non so su questo progetto. – Pirozek

+0

Sembrava che avessi bisogno di dati ("C'è un modo per ottenere l'elenco dei punti sulle mappe, diciamo, in formato JSON o XML?"). Se hai già i dati e hai bisogno di esportarli su json o xml, sarebbe abbastanza semplice? O forse sono solo troppo stanco per leggere :) – johansalllarsson

+0

Ok, forse l'ho scritto male. Ho bisogno di ottenere i dati da gmap. Ho solo l'indirizzo e ho bisogno di ottenere l'elenco delle fermate vicino a quell'indirizzo. – Pirozek

2

Questo non è un servizio fornito da Google. Hanno sicuramente tutto ciò di cui hai bisogno su disco, ma eseguono tutti i loro calcoli internamente.

Un'opzione (che potrebbe essere un po 'difficile) è quella di estrarre gli orari dei trasporti pubblici per le loro fermate dell'autobus. Potrebbe essere un'opzione se hai una piccola regione (cioè una città) che la tua app web deve supportare. È rischioso perché se le pagine cambiano, dovrai riconfigurare l'applicazione di data mining, ma avresti comunque lo stesso problema cercando di estrarre i dati da Google (o da qualche altra parte) - se tu potresti trovare ottieni una lista di fermate degli autobus con le posizioni e crea la tua app intorno, potrebbe cambiare in qualsiasi momento e interrompere la tua applicazione.

+0

Non ho bisogno di orari, solo fermate con il loro lat & lng. Ho un'altra app per gli orari, ma non voglio estrarre manualmente tutte le fermate degli autobus :) Ma hai ragione con l'app di costruzione intorno al mining soft – Pirozek

1

L'API di Google Places contiene informazioni di stop, ma è necessario formulare la query in modo specifico per farlo funzionare.

La chiave sta usando la ricerca nelle vicinanze con rankby = distanza e raggio = e tipi = bus_station

L'importanza rankby predefinita mostra raramente stazioni degli autobus.

interrogazione Esempio:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=49.89458,-97.14137&sensor=true&key=your_key&rankby=distance&types=bus_station

+1

questo è solo per le fermate degli autobus penso, non fermate dell'autobus. Non del tutto sicuro di ciò anche se –

+0

non sembra funzionare anche per le fermate degli autobus ... vedremo ... –

+1

EDIT: No, solo stazioni degli autobus. Non l'autobus si ferma. Comunque molto meglio di niente –

0

penso che possa aiutare a

<script> 
    // This example requires the Places library. Include the libraries=places 
    // parameter when you first load the API. For example: 
    // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> 

    var map; 
    var infowindow; 

    function initMap() { 
    var pyrmont = {lat: 38.06908229560463, lng: 46.31730562744135}; 

    map = new google.maps.Map(document.getElementById('map'), { 
     center: pyrmont, 
     zoom: 15 
    }); 

    infowindow = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.nearbySearch({ 
     location: pyrmont, 
     radius: 1000, 
     types: ['bus_station','transit_station'] 

    }, callback); 
    } 

    function callback(results, status) { 
    if (status === google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     createMarker(results[i]); 
     } 
    } 
    } 

    function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(place.name); 
     infowindow.open(map, this); 
    }); 
    } 
</script>