2015-11-19 41 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)); 

現在,箭頭大小的地圖縮放以正確的方式發生變化。