我正在尝试按照本文档从旧版 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 ?如果是这样,怎么办?
提前致谢。
添加
const {AdvancedMarkerElement} = await google.maps.importLibrary("marker");
然后
const marker = new AdvancedMarkerElement({
//const marker = new google.maps.Marker({
map,
position: { lat: 0, lng: -29 }
});
对我有用