2015-11-19 45 views
-1

我调整符号这样的符号:谷歌地图调整的变焦不工作

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,但它不是在改变其大小地图。

有什么我忘记了吗?

UPDATE 箭头对象定义如下:

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%' 
    }] 
}); 
+0

什么是箭头?请提供证明此问题的[最小,完整,测试和可读示例](http://stackoverflow.com/help/mcve)。 – geocodezip

+0

我认为“箭头”与问题无关。也许图标对象。无论如何,请看我的更新 – rogelio

回答

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

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