google maps api无法读取placesservice

时间:2016-01-26 09:30:18

标签: javascript google-maps google-maps-api-3 google-places-api

我遇到了Google的Maps API及其PlacesService的问题。即使我已经正确加载了席位库,它仍然会说“无法读取未定义的属性'PlacesService'”。地图本身可以工作和加载。有任何想法吗?这是代码:

<div id="map-canvas"></div>

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&libraries=place‌s"></script>
<script type="text/javascript">
    var myLatlng;
    var map;
    var marker;

    function initialize() {
        myLatlng = new google.maps.LatLng(fooLat, fooLng);

        var mapOptions = {
            zoom: 17,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: false,
            draggable: true
        };

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

        var service = new google.maps.places.PlacesService(map);

        var request = { placeId: 'fooPlaceId'};
        service.getDetails(request, callback);

        function callback (place, status) {
            if (status == google.maps.places.PlacesServiceStatus.OK) {
                marker = new google.maps.Marker({
                    position: place.position,
                    map: map,
                    title: place.name
                });
            }
        };
    }

    google.maps.event.addDomListener(window, 'load', initialize);
</script>

更新: 我只是尝试了一段代码from Google itself,它给了我同样的错误。

2 个答案:

答案 0 :(得分:23)

此示例需要Places库。首次使用API​​密钥加载API时,请包含libraries=places参数。

例如:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

答案 1 :(得分:-4)

这是答案:我直接从某个页面复制了包含行(在这里,stackoverflow或Googles API示例页面之一。似乎问题在于,无论出于什么原因,它都有一个不可见的字符。我的CMS编辑器没有找到的库的名称。所以在复制时要小心!