如何修改Google Maps默认标记的尺寸?
修改Google Maps默认标记尺寸的解决方案
我懂你的烦恼——网上大多教程都是讲自定义标记的尺寸调整,但默认的红色标记想改大小确实有点绕,直接用size属性不生效是因为默认标记是Google内置的资源,得换个方式处理。
为什么你的代码没生效?
你之前的代码只设置了size但没指定url,Google Maps会默认认为你要创建自定义符号(比如SVG图形),而不是调用默认的标记图标,所以尺寸设置不会作用在默认标记上。
正确的实现方法
要修改默认标记的尺寸,得先把默认标记的图标当作自定义图标来引用,步骤如下:
- 动态获取默认标记的图标URL(这种方式更可靠,避免Google更新URL导致失效)
- 用这个URL创建自定义图标配置,同时设置
size、scaledSize和锚点属性
完整代码示例:
// 先创建临时默认标记,获取其图标URL const tempDefaultMarker = new google.maps.Marker(); const defaultIconUrl = tempDefaultMarker.getIcon(); // 创建你需要的自定义尺寸标记 const newMarker = new google.maps.Marker({ position: marker.center, icon: { url: defaultIconUrl, // 指定默认标记的图标URL size: new google.maps.Size(60, 60), // 原始图标尺寸(和缩放尺寸一致即可) scaledSize: new google.maps.Size(60, 60), // 地图上显示的实际尺寸 anchor: new google.maps.Point(30, 60) // 锚点设为图标底部中心,避免位置偏移 } });
额外说明
scaledSize是控制显示尺寸的核心属性,即使size和它设为相同值也建议保留,确保缩放逻辑正常。- 如果不想动态获取URL,也可以直接使用Google默认标记的官方URL:
"https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png",但动态获取的方式更稳妥。 - 调整
anchor的值可以让标记精准对准目标位置,比如如果你的标记尺寸是(40,40),锚点就设为new google.maps.Point(20,40)。
内容的提问来源于stack exchange,提问作者Dipshika
相关产品推荐
相关产品推荐

