web-dev-qa-db-fra.com

google.maps.places n'est pas défini

J'ai un site Web qui charge 3 "vues" distinctes d'un lieu via Google Maps, Street et Places.

S'il vous plaît voir mon code ci-dessous:

J'ai enfin réussi à faire fonctionner correctement les cartes et Street View, mais je me bats un peu avec celui-ci.

J'ai un onglet qui affiche la même chose que la carte, mais avec des lieux ajoutés.

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

Now Ceci s'initialise correctement mais la console génère l'erreur suivante: TypeError: google.maps.places is undefined

Je veux juste savoir pourquoi je reçois cette erreur, j'aime bien avoir du code propre et sans erreur.

Les lieux apparaissent réellement correctement et tout.

23
crazyvonzipper

Vous devez ajouter l'option libraries=places dans l'URL de l'API Google.

Dans votre cas, vous devez remplacer les éléments suivants:

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

Avec ça:

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

Regardez à la fin du src=""

55
Merianos Nikos

Maintenant, vous devez utiliser https au lieu de http. 

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

Tout le reste est identique à la réponse précédente mentionnée.

0
Amir Md Amiruzzaman