Google地图自动填充功能因某些原因无法使用

Bro*_*Dev 3 javascript jquery google-maps

这是功能:

function initializeMap(){
        var LatLng = {lat: 20.23, lng: -8.28460};
        var mapOptions = {
            center: LatLng,
            zoom: 6,
            scrollwheel:false
        }

        var map = new google.maps.Map(document.getElementById('map'), mapOptions);

        var marker = new google.maps.Marker({
                position: LatLng,
                map: map,
                draggable: true,
                title: "Binko"
        });

        var input = document.getElementById('accommodation_address');
        var autocomplete = new google.maps.places.Autocomplete(input);
        autocomplete.bindTo('bounds',map);

        google.maps.event.addListener(autocomplete, 'place_changed',function(){
            var place=autocomplete.getPlace();
            if (!place.geometry){
                return;
            }
            if (place.geometry.viewport) {
                map.fitBounds(place.geometry.viewport);
            } else {
                map.setCenter(place.geometry.location);
                map.setZoom(17);
            }

            marker.setPlace( ({
                placeId: place.place_id,
                location: place.geometry.location
            }));
        });
    };

google.maps.event.addDomListener(window, 'load', initializeMap);
Run Code Online (Sandbox Code Playgroud)

我得到了未被捕获的类型错误,说未定义自动完成,即使我包含了库.我的API调用如下所示:src ="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&libraries=places">

Ste*_*voF 10

我有类似的问题.谷歌地图和自动填充功能已经在我的旧网站和本地主机上运行,​​但在新网站上却没有.我必须创建api密钥并将其包含在代码中:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script>
Run Code Online (Sandbox Code Playgroud)

然后我在开发者控制台(我有api键)中启用了额外的api.脚步:

  1. 选择你的项目
  2. 在左侧API Manager菜单中单击Overview
  3. 找到Google Places API网络服务(您可以在搜索框中输入或在Google Maps API之间找到它)
  4. 点击Google Places API网络服务
  5. 单击"启用"按钮

  • 花了整整一个晚上试图弄清楚这个谜.想知道有多少人从一开始就认识到`Places` API需要手动启用. (4认同)

Dmi*_*riy 1

尝试这样做:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initializeMap" async defer></script>
Run Code Online (Sandbox Code Playgroud)

代替

google.maps.event.addDomListener(window, 'load', initializeMap);
Run Code Online (Sandbox Code Playgroud)

可能Places库没有加载