Google 地图标记。AdvancedMarkerElement 未定义

问题描述 投票:0回答:1

我正在尝试按照本文档从旧版 Marker 映射元素迁移到较新的 AdvancedMarkerElement,但我发现 mark.AdvancedMarkerElement 未定义:

https://developers.google.com/maps/documentation/javascript/advanced-markers/migration

我已经根据此处的信息更新了加载库的脚本标签,以包含(高级)标记库: https://developers.google.com/maps/documentation/javascript/libraries

现在是:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=xxxxxx&libraries=places,marker,drawing,geometry&loading=async&callback=onMapsLoaded"></script>

地图初始化已更新以包含 id,但这似乎并不相关;\

let pos = { lat: -25.344, lng: 131.031 };
_map = new google.maps.Map(
    $('#dMap')[0], { 
        zoom: 4, 
        center: pos, 
        mapTypeId: google.maps.MapTypeId.SATELLITE, 
        mapId: 'DEMO_MAP_ID' 
    }
);

根据文档,我应该将 google.maps.Marker 更改为 google.maps.marker.AdvancedMarkerElement

let pos = { lat: -25.344, lng: 131.031 };
let marker = new google.maps.marker.AdvancedMarkerElement({
    position: pos,
    map: _map,
    title: 'Some title'
});

尝试以这种方式创建新标记会失败,因为 google.maps.marker 未定义,显然 google.maps.marker.AdvancedMarkerElement 也是如此。

有人知道这是为什么吗?

我查看了返回的脚本,它在整个脚本中提到了 AdvancedMarkerElement,所以我假设该库实际上已加载。

我缺少一些参考资料吗?我是否需要定义或调用某些函数才能定义 google.maps.marker ?如果是这样,怎么办?

提前致谢。

javascript google-maps-api-3
1个回答
0
投票

添加

const {AdvancedMarkerElement} = await google.maps.importLibrary("marker");

然后

const marker = new AdvancedMarkerElement({
            //const marker = new google.maps.Marker({
            map,
            position: { lat: 0, lng: -29 }
        });

对我有用

© www.soinside.com 2019 - 2024. All rights reserved.