如何动态设置谷歌地图标记大小
How to set Google maps marker size dynamically
我试图通过缩放来调整标记的大小,但似乎不起作用
function Icon(url) {
this.url = url;
this.scaledSize = new google.maps.Size(30, 30); // scaled size
//this.origin = new google.maps.Point(0,0); // origin
//this.anchor = new google.maps.Point(0, 0); // anchor
}
var icon1 = new Icon('img/marker-test.png');
map.addListener('zoom_changed', function() {
if(map.zoom === 18){
//marker.setIcon(test);
console.log('check');
marker.scaledSize = new google.maps.Size(300, 300);
} else {
//marker.setIcon(icon1);
}
});
有人知道怎么解决这个问题吗?
在我回答之前,有几个建议:
- 您使用了无效的
map.zoom === 18
。应该是map.getZoom() === 18
-
marker.scaledSize
无效,因为scaledSize
是Icon
对象的属性。参考:图标对象规范如果需要动态设置标记大小,则需要通过图标属性指定标记图像(在创建标记时),而不是作为字符串或留空(以显示默认标记)。
缩放在默认标记上不起作用。因此,您需要为标记提供自己的自定义图像。
规模与大小
缩放变换标记图像,大小指定图像的画布大小。设置小标记图像的大小属性不会显示标记图像的任何缩放效果。但是,如果标记图像足够大,并且它以前是用缩小比例绘制的,则放大效果良好。
如果只缩放图像而不设置大小,则标记图像将放大预先指定的大小。也就是说,标记图像的某些部分将不可见。
简单地说,这里有一把小提琴。尝试将缩放比例更改为18及以上,然后再更改为15及以下。
尝试使用正确的getZoom
映射方法。
if (map.getZoom() === 18) {
...
}
https://developers.google.com/maps/documentation/javascript/reference#Map
相关文章:
- 如何更改角度谷歌地图上的集群图标
- 谷歌地图API-显示具有不同图标的标记
- 谷歌地图-更改图层图标大小
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 将图标作为参数传递不会;t工作-谷歌地图
- 谷歌地图隐藏手图标
- 从谷歌地图信息窗口中删除关闭图标
- 在javascript中设置谷歌地图标记图标属性
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 我如何才能在某些条件下更改c#中谷歌地图标记的图标
- 使用HTML元素代替gmap3的地图标记图标
- 谷歌地图标记图标作为变量
- 我如何使谷歌地图不更改标记的自定义图标大小
- 饼图而不是谷歌地图中的标记集群图标
- 如何在谷歌地图上放置图标标记,图标数量是否有配额
- 可拖动图标未显示在 Google 地图顶部且不重复
- 谷歌地图v3更改标记图标在安卓网络视图
- AngularJS谷歌地图(ng-map)图标网址不起作用
- 带有群集和过滤器复选框的地图框个性化图标
- 添加 removeMarker 函数时,每 5 秒在地图上加载一次图钉不会显示图标