2012-05-17 9 views
6

Neu bei Google Maps, und auch kein Skript-Experte. Vielen Dank im Voraus für Ihre Hilfe.Google Maps Places api, wie bekomme ich den standardmäßigen Infowindow-Inhalt von einem Marker

Ich lege eine Google-Karte auf einer Seite von Filialen. Ich habe es geschafft, dass die Karte den Marker, den ich für den Standort des Ladens haben möchte, über die Suche anzeigt. Jetzt möchte ich, dass das infoWindow wie das Standard-Google-Fenster aussieht. Aber unter Verwendung des Codes, den ich in der Ortsbibliothek finden konnte, erscheinen die Ergebnisse unformatiert ohne Zeilenumbrüche und zeigen Fehler, wenn ein Teil, wenn Informationen fehlen, usw. ... Ich habe gesucht und nichts gefunden, was geholfen hat - also bitte verzeih mir, wenn das schon beantwortet ist - und ich habe die google places library mehrfach durchgelesen, also bin ich entweder dicht oder sie adressieren diese spezifische Frage einfach nicht.

Der Benutzer wird auf einen Speicherort auf der Seite klicken, und ich möchte ihnen die Karte mit dem einen Marker zeigen (durch Suche ich denke, dass ich das bekommen kann) und ich möchte die Geschäftsinformationen in der infoWindow, wenn sie auf den Marker klicken (am liebsten hätte ich das InfoWindow bereits geöffnet, aber ich konnte auch nichts finden). Da ich neu auf der Seite bin, kann ich kein Bild des InfoWindows posten, also wird es hoffentlich nicht benötigt. Wie bei der Google-Karten-Website möchte ich einen schön formatierten Namen, die Reputation-Sterne, eine formatierte Adresse, Telefonnummer und Website sowie ein Bild des Geschäfts, falls es existiert. Das Beispiel, das ich unten verwende, ist für ein Unternehmen, in dem all diese Informationen in Google existieren. Der Code, den ich derzeit für die Karte habe, ist enthalten.

Bitte antworten Sie nicht einfach, um mich zurück zur Ortsbibliothek zu verweisen; Wenn das alles ist, was du hast, hilft es nicht. Ich brauche etwas Klärung und idealerweise ein Beispiel. Vielen Dank.

<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> 

Antwort

3

ich endlich etwas Code, der sich für die Formatierung von Infowindow in einem anderen post where they were answering a question about removing the border für Infowindow.

Hier ist mein Beispiel:

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>') ; 

ich herausgefunden, wie man auch in der Places Library beschrieb die getDetails Funktion

Ich weiß nicht, noch wie die Rating-Informationen zu bekommen (I benutze das Tag, aber es gibt einen Fehler), wie man das Bild für den Standort abruft, oder wie man den "undefinierten" Fehler beseitigt.

Letztes Element ist, das infoWindow geöffnet zu haben, wenn die Karte lädt ... Ich sah einen Beitrag darüber, aber konnte es nicht zur Arbeit bekommen.

+0

Da nicht alle Orte Bewertungsdaten haben, ist die 'place.rating' Variable 'undefiniert' wenn die Daten nicht verfügbar sind. Sie sollten überprüfen, dass die Variablen nicht "undefiniert" sind, bevor Sie sie verwenden. Derzeit gibt es keine Möglichkeit, das Bild eines Ortes zu erhalten. Es gibt eine Feature-Anforderung dafür in der Places API Issue Tracker hier: http://code.google.com/p/gmaps-api-issues/issues/detail?id=3552 Bitte klicken Sie auf das "Stern" -Symbol zu sein über zukünftige Änderungen informiert, und um uns wissen zu lassen, dass Sie daran interessiert sind, es zu lösen. –