使用google maps API v3。
我想创建一个圆圈标记,所以我使用以下内容(仅显示相关代码):
var icn = { fillColor: "#0000FF",
fillOpacity: 1.0,
path: google.maps.SymbolPath.CIRCLE,
scale: 4,
strokeColor: "#0000FF",
strokeWeight: 1.0 };
var m = new google.maps.Marker({ map: my_map, position: p, icon: icn } );
效果很好......
但是如何计算(或控制)圆的直径(以像素为单位)?根据API文档:
scale - number符号缩放的大小。对于 符号标记,默认为1;缩放后,符号可能是 任何尺寸。对于折线上的符号,默认为笔划 折线的重量;缩放后,符号必须位于a内 正方形22像素,以符号的锚点为中心。
有人(谷歌)请澄清:
a)对于CIRCLE符号,如果strokeWeight为1.0且scale为4,那么圆直径是以像素为单位的?是否有一些神奇的公式用于创建特定像素直径的圆圈?
b)圆的最大尺寸是否限制在22像素?似乎并非如此,因为我可以扩展到几乎任何尺寸 - 再次澄清 - 只是折线上符号的22像素限制?
答案 0 :(得分:1)
内置圆圈的路径是:
M -1,0 A 1,1 0 0 0 1,0 1,1 0 0 0 -1,0 z
....所以路径的直径是2px
笔划将与填充重叠一半,因此您可以使用以下公式为内置CIRCLE计算完整符号的直径(包括笔划):
(scale*2)+strokeWeight//where strokeWeight defaults to scale
对于您的示例,它将导致直径为9px
22px限制与折线上的符号(IconSequences)相关,当您使用符号作为标记时,没有限制。