2012-05-17 12 views
6

Nuovo su Google Maps, e nemmeno un esperto di script. Grazie in anticipo per qualsiasi aiuto tu possa fornire.Google Maps Places api, come faccio a ottenere il contenuto standard di infowindow da un marker

Sto mettendo una mappa di google su una pagina di negozi. Sono riuscito a ottenere la mappa per visualizzare il marcatore che voglio per la posizione del negozio utilizzando la ricerca. Ora voglio che l'informazione di Windows sia popolata per assomigliare alla finestra standard di Google. Ma usando il codice che sono riuscito a trovare nella libreria dei luoghi, i risultati appaiono non formattati senza interruzioni di riga e mostrano errori se un pezzo se mancano informazioni, ecc. Ho cercato e non ho trovato nulla che mi aiutasse - quindi, per favore, perdonami se questa è già una risposta - e ho letto attraverso la libreria di Google Places numerose volte così o sono denso o semplicemente non rispondono a questa domanda specifica.

L'utente farà clic su una posizione di negozio elencata nella pagina e voglio mostrare loro la mappa con l'unico indicatore (tramite la ricerca penso di poterlo ottenere) e voglio che le informazioni del negozio compaiano nella infoWindow quando cliccano sull'indicatore (preferibilmente vorrei che l'informazioneWindow sia già stata aperta ma non sono riuscito a trovare nulla nemmeno su quello). Dato che sono nuovo del sito, non posso pubblicare un'immagine di InfoWindow, quindi spero che non sia necessario. Come il sito web della mappa di Google, desidero un nome ben formattato, le stelle della reputazione, un indirizzo formattato, un numero di telefono e un sito Web, insieme a un'immagine dell'azienda se esiste. L'esempio che uso di seguito è per un'azienda in cui tutte queste informazioni sono presenti in Google. Il codice che attualmente ho per la mappa è incluso.

Per favore non rispondere semplicemente per ricondurmi alla biblioteca dei luoghi; se è tutto ciò che hai, allora non sta aiutando. Ho bisogno di qualche chiarimento e idealmente un esempio. Grazie.

<script type="text/javascript"> 
    var map; 
    var service; 
    var infowindow; 

    function initialize() { 
    var mvale = new google.maps.LatLng(40.708572,-74.017385); 

    map = new google.maps.Map(document.getElementById('map_canvas'), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: mvale, 
     zoom: 16 
    }); 

    var request = { 
     location: mvale, 
     radius: '500', 
    keyword: "Michelle Vale" 
    }; 

    infowindow = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.search(request, callback); 
    } 

    function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     var place = results[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 + place.rating + place.vicinity + 
      place.formatted_address + place.website); 
      infowindow.open(map, this); 
     }); 
     } 

    function openInfoWindow(id){return true;} 

    google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 

risposta

3

ho finalmente localizzato po 'di codice per la formattazione del infowindow in un altro post where they were answering a question about removing the border per l'infowindow.

Ecco il mio esempio:

infowindow.setContent('<span style="padding: 0px; text-align:left" align="left"><h5>' + place.name + '&nbsp; &nbsp; ' + place.rating 
          + '</h5><p>' + place.formatted_address + '<br />' + place.formatted_phone_number + '<br />' + 
          '<a target="_blank" href=' + place.website + '>' + place.website + '</a></p>') ; 

ho anche capito come utilizzare la funzione GetDetails descritta nella Places Library

io ancora non so come ottenere le informazioni di valutazione (I sto usando il tag ma dà un errore), come recuperare l'immagine per la posizione, né come eliminare l'errore "indefinito" dall'apparire.

L'ultimo elemento è avere la finestra di informazioni aperta quando la mappa viene caricata ... Ho visto un post a riguardo ma non è riuscito a farlo funzionare.

+0

Poiché non tutti i posti hanno dati di valutazione, la variabile 'place.rating' sarà' indefinita' se i dati non sono disponibili. Dovresti controllare che le variabili non siano 'indefinite' prima di usarle. Attualmente non è possibile recuperare l'immagine di un luogo. È disponibile una richiesta di funzione nel tracker dei problemi dell'API Places qui: http://code.google.com/p/gmaps-api-issues/issues/detail?id=3552 Fai clic sull'icona "stella" per essere notificato dei cambiamenti futuri e per farci sapere che sei interessato a vederlo risolto. –

Problemi correlati