Подтвердить что ты не робот

Google.maps.places undefined

У меня есть веб-сайт, который загружает 3 отдельных "представления" местоположения через Карты Google, Улицы и Места.

Посмотрите мой код ниже:

Наконец-то я получил представление "Карты и улицы", чтобы нормально работать, но немного борюсь с этим.

У меня есть вкладка, отображающая то же самое, что и карта, но с добавленными местами.

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

Теперь это правильно инициализируется, но консоль выдает следующую ошибку: TypeError: google.maps.places undefined

Я просто хочу знать, почему я получаю эту ошибку, мне нравится иметь чистый код без ошибок.

Места действительно отображаются правильно и все.

4b9b3361

Ответ 1

Вы должны добавить опцию libraries=places в URL API Google

В вашем случае вы должны заменить следующее:

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

С этим:

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

Посмотрите на конец src=""

Ответ 2

Теперь вы должны использовать https вместо http.

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

Все остальное такое же, как и в предыдущем ответе.

Ответ 3

нужно включить: API мест Google Получите подробную информацию о 100 миллионах мест

В API место представлено интерфейсом Place. Он включает в себя такую информацию, как название места и его адрес, географическое местоположение, идентификатор места, номер телефона, тип места, URL-адрес веб-сайта и многое другое.

Вы можете обратиться сюда: https://developers.google.com/maps/documentation/javascript/examples/place-details