自 2024 年 2 月 21 日 (v3.56) 起,google.maps.Marker 已弃用。我们建议您改用新的 google.maps.marker.AdvancedMarkerElement
类。与旧版 google.maps.Marker
类相比,高级标记有了很大改进。
若要将旧版标记更新为高级标记,请执行以下步骤:
- 添加用于导入标记库的代码。请注意,之前的标记版本 (
google.maps.Marker
) 没有此要求。 - 将
google.maps.Marker
更改为google.maps.marker.AdvancedMarkerElement
- 在地图初始化代码中添加地图 ID,例如,如果您还没有地图 ID,可以使用
mapId: 'DEMO_MAP_ID'
进行测试。
添加高级标记库
您用于加载库的方法取决于您的网页加载 Maps JavaScript API 的方式。
如果您的网页使用动态脚本加载,请在运行时添加标记库并导入
AdvancedMarkerElement
(以及可选的PinElement
),如此处所示。const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker");
如果您的网页使用旧版的直接脚本加载标记,请将
libraries=marker
添加到加载脚本,如以下代码段所示。<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly&libraries=marker" defer ></script>
示例
以下代码示例显示了添加旧版标记的代码,随后是使用高级标记的同一示例的代码:
迁移前
// The location of Uluru const position = { lat: -25.344, lng: 131.031 }; const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: position, }); // The marker, positioned at Uluru const marker = new google.maps.Marker({ map: map, position: position, title: 'Uluru', });
迁移后
// The location of Uluru const position = { lat: -25.344, lng: 131.031 }; const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: position, mapId: "DEMO_MAP_ID", // Map ID is required for advanced markers. }); // The advanced marker, positioned at Uluru const marker = new google.maps.marker.AdvancedMarkerElement({ map, position: position, title: 'Uluru', });
探索高级标记的功能
高级标记可通过以前无法实现的方式进行自定义。现在,您可以调整标记的大小(比例),更改背景、边框和字形的颜色。自定义图形图像的操作更加简单,现在,您还可以使用 HTML 和 CSS 来编写自定义标记。不妨详细了解高级标记的所有功能: