webentwicklung-frage-antwort-db.com.de

google.maps.places ist nicht definiert

Ich habe eine Website, die drei separate "Ansichten" eines Standorts über Google Maps, Straße und Orte lädt.

Bitte sehen Sie meinen Code unten:

Ich habe endlich Maps und Street View zum Laufen bekommen, aber ich habe ein bisschen mit diesem zu kämpfen.

Ich habe eine Registerkarte, die dasselbe wie die Karte anzeigt, jedoch Orte hinzugefügt hat.

<script type="text/javascript" 
  src="http://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script>

<script type="text/javascript">
var myLattitude = <?php echo $data["lattitude"]; ?>;
var myLongitude = <?php echo $data["longitude"]; ?>;
var poiMap;
var infowindow;

function initializePoi() {
            var poiCentre = new google.maps.LatLng(myLattitude, myLongitude);

            poiMap = new google.maps.Map(document.getElementById('poi-canvas'), {
                center: poiCentre,
                zoom: 15
            });

            var request = {
                location: poiCentre,
                radius: 500,
                types: ['store']
            };
            infowindow = new google.maps.InfoWindow();
            var service = new google.maps.places.PlacesService(poiMap);
            service.nearbySearch(request, 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: poiMap,
                position: place.geometry.location
            });

            google.maps.event.addListener(marker, 'click', function() {
                infowindow.setContent(place.name);
                infowindow.open(poiMap, this);
            });
        }

Nun wird dies ordnungsgemäß initialisiert, aber die Konsole gibt den folgenden Fehler aus: TypeError: google.maps.places ist undefined

Ich möchte nur wissen, warum ich diese Fehlermeldung bekomme. Ich mag sauberen fehlerlosen Code.

Die Orte zeigen sich tatsächlich richtig und alles.

23
crazyvonzipper

Sie sollten die Option libraries=places in die Google API-URL einfügen

In Ihrem Fall sollten Sie Folgendes ersetzen:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script>

Mit diesem:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap&libraries=places"></script>

Schauen Sie sich das Ende des src="" an.

55
Merianos Nikos

Jetzt müssen Sie https anstelle von http verwenden. 

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap&libraries=places"></script>

Alles andere ist dasselbe wie in der vorherigen Antwort.

0