根据缩放级别更改图标

Cam*_*mel 8 javascript jquery google-maps google-maps-api-3

如何根据Google地图缩放级别更改图标的高度和宽度?

我正在使用Google Maps api v3.

Cam*_*mel 8

这是我最终使用的代码:

google.maps.event.addListener(google_map, 'zoom_changed', function() {
    var z = google_map.getZoom();

    _.each(map_shapes, function(s) {

        if (! $.isFunction(s.shape.getPosition)) return;

        var w = s.shape.getIcon().size.width;
        var h = s.shape.getIcon().size.height;

        s.shape.setIcon(new google.maps.MarkerImage(
            s.shape.getIcon().url, null, null, null, new google.maps.Size(
                w - Math.round(w / 3 * (last_zoom - z)),
                h - Math.round(h / 3 * (last_zoom - z)))
            )
        );

    });

    last_zoom = z;
});
Run Code Online (Sandbox Code Playgroud)


Ami*_*haq 6

您应该能够根据文档为缩放更改添加侦听器.它没有通过任何东西,但你可以通过api获得该属性.

google.maps.event.addListener(map, 'zoom_changed', function() {
    zoomLevel = map.getZoom();
    //this is where you will do your icon height and width change.     
  });
Run Code Online (Sandbox Code Playgroud)