2012-08-12 9 views
6

Utilizzando l'API di Google Maps, come posso impostare le icone di fermata bus per essere selezionabili e mostrare i servizi del numero di bus in una finestra a lato? Posso vedere nel sito di Google Map, è abilitato. Ma quando creo il mio codice usando l'API Map, sembra che questo sia disabilitato di default?Abilita icone bus stop selezionabili in Google Maps

Se non mi sono chiaro, vedere il collegamento dell'immagine.

https://dl.dropbox.com/u/46360728/diff.maps.png

a sinistra è la mappa in sito maps.google.com mentre sulla destra è la mia implementazione di Google Maps. Come puoi vedere, non riesco a fare clic sulla stazione degli autobus della mia implementazione, diversamente dall'altra schermata.

Qualsiasi aiuto sarebbe molto apprezzato.

+0

hey collega sgporeano. Penso che sto affrontando lo stesso problema. Aggiornerà se trovo qualcosa. – mauris

risposta

2

Per ora non è possibile farlo funzionare. È un bug "riconosciuto" nella API di gmap: https://code.google.com/p/gmaps-api-issues/issues/detail?id=145

Noterai che nella loro demo di codice di transito ufficiale sul sito API, non c'è anche interattività: https://developers.google.com/maps/documentation/javascript/examples/layer-transit.

+0

Posso chiedere chiarimenti? In che modo la mia risposta non riesce a rispondere "Usando l'API di Google Maps, come posso impostare le icone di fermata del bus per essere cliccabili?" – PBoillot

+0

Scusa, ho fallito qualcosa. –

1

È possibile ottenere il nome, l'ID e le coordinate dell'autostazione e quindi ottenere informazioni sulla fermata dell'autobus con qualsiasi altra API. Ecco il codice:

var overlay; 
overlay = new google.maps.OverlayView(); 
overlay.draw = function() {}; 
overlay.setMap(map); 

$('#map-canvas').click(function(event){ 
    var point = new google.maps.Point(event.pageX,event.pageY); 
    var location = overlay.getProjection().fromContainerPixelToLatLng(point); //get map coordinates by click 

    var request = { 
     location: location, 
     types: ['bus_station','subway_station'], //get bus stops and metro stations 
     radius: 10, 
    }; 
    placesService = new google.maps.places.PlacesService(map); 
    placesService.search(request, function(result, status, pagination){ 
     station = result[0]; 
     if(typeof station != 'undefined'){ 
     pos = station.geometry['location']; //position 
     bus_no = station.name.match(/\[([0-9]+)\]/i)[1]; //get ID by name 
     alert(bus_no); // ID 
     } 
    }); 
    });