谷歌地图 api 无法读取位置服务

Posted

技术标签:

【中文标题】谷歌地图 api 无法读取位置服务【英文标题】:google maps api cannot read placesservice 【发布时间】:2016-05-02 19:48:29 【问题描述】:

我在使用 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,它给了我同样的错误。

【问题讨论】:

如果您有答案,请将其作为答案和accept it 发布,而不是编辑问题。 【参考方案1】:

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

例如:

&lt;script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&amp;libraries=places"&gt;

【讨论】:

注意:如果您需要启用多个库,只需用逗号分隔它们 - 例如&amp;libraries=geometry,places【参考方案2】:

这是答案:我直接从某个页面(此处为 *** 或 Google API 示例页面之一)复制了包含行。问题似乎在于,无论出于何种原因,它在我的 CMS 编辑器没有选择的库的名称。所以复制时要小心!

【讨论】:

不知道为什么这被否决了——如果你复制 OP 的 'libraries' 查询字符串参数,你最终会在 "places" 的 "e" 和 "s" 之间得到三个不可见的字符:E2, 80和 8C 十六进制。没想到!

以上是关于谷歌地图 api 无法读取位置服务的主要内容,如果未能解决你的问题,请参考以下文章

即使我获得了 API 密钥,也无法使用谷歌地图

如何使用谷歌地图 Api 获得最精确的位置 [重复]

怎么用百度地图api自动获取当前位置(谷歌的也行)

谷歌地图 api 中心在我的位置上有一个按钮

从谷歌地图API位置搜索框的示例中获取坐标? [重复]

从Vue js通过axios调用谷歌地图海拔api时如何修复跨域读取阻塞?