google maps api v3 marker symbol circle pixel pixel diameter?

时间:2015-06-30 20:14:19

标签: google-maps-api-3 marker

使用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像素限制?

1 个答案:

答案 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)相关,当您使用符号作为标记时,没有限制。