谷歌地图调整大小符号缩放不起作用

时间:2015-11-19 16:42:28

标签: javascript google-maps

我以这种方式调整符号大小:

google.maps.event.addListener(map_object, 'zoom_changed', (function(arrow) { return function() {
    var zoom = map_object.getZoom();
    var scale = 2.48676567E-2 * Math.exp(0.143700035 * zoom);
    arrow.icons[0].icon.scale = scale;
}})(arrow));

当我检查箭头对象时,scale属性会在zoom_changed上正确更改,但它不会在地图中更改其大小。

有什么我忘了做的吗?

更新 箭头对象定义如下:

var sym = {
    path: "M0 15 L30 0 L60 15",
    rotation: angle,
    scale: 0.25,
    strokeWeight: 3,
};
var arrow = new google.maps.Polyline({
    path: [{lat: lat, lng: lng},{lat: lat2, lng: lng}],
    geodesic: true,
    strokeColor: color,
    strokeOpacity: 0.9,
    icons: [{
        icon: sym,
        offset: '100%'
     }]
});

1 个答案:

答案 0 :(得分:0)

仅供将来参考。

我使用Polyline类中的setOptions方法解决了我的问题,而不是设置scale属性。

我的代码变成了这个:

google.maps.event.addListener(map_object, 'zoom_changed', (function(arrow) { return function() {
    var zoom = map_object.getZoom();
    var scale = 2.48676567E-2 * Math.exp(0.143700035 * zoom);
    var icon = arrow.icons[0].icon;
    icon.scale = scale;
    arrow.setOptions({icons: [{icon: icon, offset: '100%'}]});
}})(arrow));

现在,箭头大小正在以正确的方式改变地图缩放。