标记概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
您可以使用标记来显示地图上的单个位置。本指南介绍了如何使用高级标记。借助高级标记功能,您不仅可以创建和自定义高性能标记,还可以制作可访问的标记,以响应 DOM 点击事件和键盘输入。对于更深层次的自定义,高级标记支持使用自定义 HTML 和 CSS,包括创建完全自定义的标记。对于 3D 应用,您可以控制标记在哪个海拔高度显示。光栅地图和矢量地图均支持高级标记(不过,某些功能在光栅地图上不可用)。
使用高级标记需要地图 ID(可以使用 DEMO_MAP_ID
)。
高级标记使用入门
自定义颜色、比例和图标图片
自定义默认标记的背景、字形和边框颜色,并调整标记大小。
将默认标记图标替换为自定义 SVG 或 PNG 图片。
创建自定义 HTML 标记
使用自定义 HTML 和 CSS 来创建具有视觉吸引力的交互式标记,并创建动画。
使标记响应点击事件和键盘事件
通过添加 click
事件监听器,使标记响应点击和键盘事件。
function initMap() {
const map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 37.4239163, lng: -122.0947209},
zoom: 17,
mapId: 'DEMO_MAP_ID',
});
const marker = new google.maps.marker.AdvancedMarkerElement({
map,
position: {lat: 37.4239163, lng: -122.0947209},
});
marker.addListener('click', ({domEvent, latLng}) => {
const {target} = domEvent;
// Handle the click event.
// ...
});
}
设置标记海拔高度和冲突行为
为标记设置海拔高度,使其与 3D 地图元素一同正确显示,同时指定某个标记与其他标记或地图标签冲突时的行为方式。只有矢量地图支持标记海拔高度。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-17。
[null,null,["最后更新时间 (UTC):2025-08-17。"],[[["\u003cp\u003eAdvanced markers offer highly performant and customizable options for displaying single locations on Google Maps, including custom HTML and CSS for unique designs.\u003c/p\u003e\n"],["\u003cp\u003eThey are accessible, responding to DOM click events and keyboard input for enhanced user interaction.\u003c/p\u003e\n"],["\u003cp\u003eCustomization options include changing color, scale, icon image, and creating custom HTML markers with interactive elements and animations.\u003c/p\u003e\n"],["\u003cp\u003eAltitude control is available for 3D applications, enabling precise marker placement in three-dimensional spaces, although this feature is limited to vector maps.\u003c/p\u003e\n"],["\u003cp\u003eAdvanced markers are compatible with both raster and vector maps, requiring a map ID for implementation, and offer improved performance compared to legacy markers.\u003c/p\u003e\n"]]],["Advanced markers allow customization of map markers, including color, scale, and icons (SVG/PNG). Users can employ custom HTML and CSS for unique designs and animations. Markers can be made interactive via `click` event listeners, handling user clicks and keyboard input. Altitude and collision behavior can be defined for 3D maps. A map ID, like `DEMO_MAP_ID`, is needed, and these advanced markers are available on Android, iOS, and JavaScript platforms, supporting both raster and vector maps.\n"],null,["Select platform: [Android](/maps/documentation/android-sdk/advanced-markers/overview \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/advanced-markers/overview \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/advanced-markers/overview \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nUse markers to display single locations on a map. This guide shows you how to\nuse advanced markers. With\nadvanced markers you can create and customize highly\nperformant markers, and make accessible markers that respond to DOM click events\nand keyboard input. For even deeper customization,\nadvanced markers supports the use of custom HTML and CSS,\nincluding the ability to create completely custom markers. For 3D applications\nyou can control the altitude at which a marker appears.\nAdvanced markers are supported on both raster and vector maps (though some features are not available on raster maps).\nA map ID is required to use Advanced Markers (the `DEMO_MAP_ID` can be used).\n| **Tip:** If your map uses [legacy markers](/maps/documentation/javascript/markers), consider [migrating to advanced markers](/maps/documentation/javascript/advanced-markers/migration).\n\n[Get started with advanced markers](/maps/documentation/javascript/advanced-markers/start)\n\nCustomize color, scale, and icon image\n\nCustomize the default marker's background, glyph, and border\ncolor, and adjust marker size.\n\nReplace the default marker icon with a custom SVG or PNG image.\n\nCreate custom HTML markers\n\nUse custom HTML and CSS to create visually distinctive\ninteractive markers, and create animations.\n\nMake markers respond to click and keyboard events\n\nMake a marker respond to clicks and keyboard events by adding a\n`click` event listener. \n\n```javascript\nfunction initMap() {\n const map = new google.maps.Map(document.getElementById('map'), {\n center: {lat: 37.4239163, lng: -122.0947209},\n zoom: 17,\n mapId: 'DEMO_MAP_ID',\n });\n\n const marker = new google.maps.marker.AdvancedMarkerElement({\n map,\n position: {lat: 37.4239163, lng: -122.0947209},\n });\n\n marker.addListener('click', ({domEvent, latLng}) =\u003e {\n const {target} = domEvent;\n // Handle the click event.\n // ...\n });\n}\n```\n\nSet marker altitude and collision behavior\n\nSet the altitude for a marker to make it appear correctly with\n3D map elements, and specify how a marker should behave when it collides with\nanother marker or map label. Marker altitude is only supported on vector maps.\n\nNext step\n\n- [Get started with advanced markers](/maps/documentation/javascript/advanced-markers/start)"]]