Javascript 如何动态设置谷歌地图标记大小

Javascript 如何动态设置谷歌地图标记大小,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我正试图通过缩放来调整标记的大小,但似乎不起作用。下面是更好地概述的代码: 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

我正试图通过缩放来调整标记的大小,但似乎不起作用。下面是更好地概述的代码:

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);
        }
    });

有人知道怎么解决这个问题吗

尝试使用正确的
getZoom
map方法

if (map.getZoom() === 18) {
    ...
}

在我回答之前,有几点建议:

  • 您使用了无效的
    map.zoom===18
    。它应该是
    map.getZoom()==18
  • marker.scaledSize
    无效,因为
    scaledSize
    Icon
    对象的属性。参考:

    如果需要动态设置标记大小,则需要通过“图标”属性指定标记图像(创建标记时),而不是作为字符串或保留为空(以显示默认标记)

缩放在默认标记上不起作用。因此,您需要为标记提供自己的自定义图像

规模与规模的对比

缩放变换标记图像,大小指定图像的画布大小。设置小标记图像的“大小”属性不会显示标记图像的任何缩放效果。但是,如果标记图像足够大,并且之前是通过缩小比例绘制的,则放大比例可以正常工作

如果仅缩放图像而未设置大小,则标记图像将按预先指定的大小放大。也就是说,标记图像的某些部分将不可见


简单地说,这里有一个例子。尝试将“缩放”更改为18及以上,然后再更改为15及以下。

谢谢,伙计,我完全忘了指定图标属性!谢谢你提供的更多信息:)你帮了我很多