更改Google地图V3中的标记大小
我正在使用这个解释如何使用MarkerImage设置图标来着色google地图标记,并且着色效果很好。 但是我不能让scaledSize参数改变标记的大小。
var pinColor = 'FFFF00'; var pinIcon = new google.maps.MarkerImage( "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor, new google.maps.Size(21, 34), new google.maps.Point(0,0), new google.maps.Point(10, 34), new google.maps.Size(2, 4)); marker.setIcon(pinIcon);
什么是scaledSize参数的正确使用来改变标记大小? 例如,我怎样才能加倍标记的大小?
这个答案阐述了约翰·布莱克的有用答案 ,所以我将在我的答案中重复他的一些答案内容。
调整标记的最简单方法似乎是将参数2,3和4置为空,并在参数5中缩放大小。
var pinIcon = new google.maps.MarkerImage( "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FFFF00", null, /* size is determined at runtime */ null, /* origin is 0,0 */ null, /* anchor is bottom center of the scaled image */ new google.maps.Size(42, 68) );
另外,对类似问题的这个答案断言在第二个参数中定义标记大小比在第五个参数中定义要好。 我不知道这是否属实。
离开参数2-4 null对于默认的google pin图像非常适用,但是您必须明确地为默认的google pin阴影图像设置一个锚点,否则它将如下所示:
当您在地图上查看graphics时,引脚图像的底部中心碰巧与引脚的顶端并置。 这很重要,因为当您离开锚(第四个参数)为null
时,标记的位置属性(标记在地图上的LatLng位置)将自动与引脚的视觉顶端并置。 换句话说,将锚点留空将确保提示点位于应该指向的位置。
但是,影子的尖端不在底部中心。 因此,您需要明确设置第四个参数来抵消针阴影的顶端,以便阴影顶端与针图像的顶端同位。
通过实验我发现阴影的尖端应该像这样设置:x是尺寸的1/3,y是尺寸的100%。
var pinShadow = new google.maps.MarkerImage( "http://chart.apis.google.com/chart?chst=d_map_pin_shadow", null, null, /* Offset x axis 33% of overall size, Offset y axis 100% of overall size */ new google.maps.Point(40, 110), new google.maps.Size(120, 110));
给这个:
大小参数以像素为单位。 所以,为了加倍你的例子的标记大小,MarkerImage构造函数的第五个参数是:
new google.maps.Size(42,68)
我发现最简单的方式是让map API找出其他参数,除非我需要图片底部/中心以外的其他参数作为锚点。 在你的情况下,你可以这样做:
var pinIcon = new google.maps.MarkerImage( "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor, null, /* size is determined at runtime */ null, /* origin is 0,0 */ null, /* anchor is bottom center of the scaled image */ new google.maps.Size(42, 68) );
- 先closuresInfoWindow再打开另一个
- Google地图v3可拖动标记
- “https://www.googleapis.com/”上的networking位置提供程序:在Web应用程序中返回错误代码403
- Google Maps API中的“meta viewport user-scalable = no”有什么意义?
- 带有Infowindows的Google Maps API多个标记
- 在Google Maps API V3中使用fitBounds()之后使用setZoom()
- 如何使用Google地图API禁用鼠标滚轮缩放
- 使用Google地图加载本地.kml文件?
- 谷歌地图API从自动完成的经纬度没有地图