0
我試圖在每次放大或縮小地圖時調整標記的大小。 目前我正在使用這種方法:使標記在單張中可調整大小的最佳方法
- 迭代zoomend方法中的所有標記。
- 獲取當前圖標大小
- 根據縮放大小執行一些計算以獲取新的標記大小。
將新維度設置爲圖標對象。
map.on('zoomend', function() { zoomEndLevel = map.getZoom(); var difference = zoomEndLevel - zoomStartLevel; console.log("difference in zoom " + difference); markerArray.forEach(function(marker) { var icon = marker.options.icon; var oldX = icon.options.iconSize[0]; var oldY = icon.options.iconSize[1]; var newX = getNewIconAxis(oldX, difference); var newY = getNewIconAxis(oldY, difference); console.log(newX + " " + newY); icon.options.iconSize = [ newX, newY ]; marker.setIcon(icon); });
});
map.on('zoomstart', function() { zoomStartLevel = map.getZoom();
});
function getNewIconAxis(value, zoomChange) { if (zoomChange > 0) { for (var i = zoomChange; i > 0; i--) { value = value * 2; } } else { for (var i = zoomChange; i < 0; i++) { value = value/2; } } return value;
}
問題: 此代碼工作正常,如果我和縮小1級放大一次。如果我太頻繁地滾動鼠標,那麼這段代碼給出了奇怪的輸出。有時標記尺寸變得太大或太小。
問題: 1)這是使標記在不同縮放級別上可調整大小的唯一方法嗎? 2)如果是,那麼我在這裏錯過了什麼,或者應該做些什麼改變才能使它完美地工作。
注意:標記谷歌地圖也是因爲它更多的是與地圖(無論是谷歌或傳單或地圖箱)的邏輯問題,而不是特定於API的問題。
你爲什麼標記谷歌地圖以及傳單?請以可讀格式格式化您的代碼和問題! –