2016-09-16 62 views
0

我正在使用amCharts地圖在地圖上顯示標記(對象)。由於經度和緯度的變化,這些對象一直在移動,所以我每4秒呼叫validateData()以更新包含對象新位置的地圖。amcharts地圖 - 在更新後保持用戶的縮放級別

Items on map

的問題是,用戶放大之後,validateData()調用重繪地圖和縮小退了出去。如何在保持相同縮放級別的同時重繪我的地圖?

回答

0

在調用validateData之前,您需要在地圖的dataProvider中存儲地圖的當前zoomLevel,zoomLongitude和zoomLatitude。下面是從a demo on AmCharts' website片段,做恰恰是:

// set same zoom levels to retain map position/zoom 
    map.dataProvider.zoomLevel = map.zoomLevel(); 
    map.dataProvider.zoomLatitude = map.dataProvider.zoomLatitude = map.zoomLatitude(); 
    map.dataProvider.zoomLongitude = map.dataProvider.zoomLongitude = map.zoomLongitude(); 
    // update map 
    map.validateData(); 
+0

謝謝,不知道我怎麼錯過了從文檔。你的解決方案就像一個魅力! –

1

其實這個代碼是來自官方的例子取自amcharts網站,但在這使得地圖縮放不慢的代碼錯誤,它「跳」到中心然後放大到所選國家/地區。解決方案是低於

 
    map.dataProvider.zoomLevel = map.zoomLevel(); 
    map.dataProvider.zoomLatitude = map.dataProvider.zoomLatitudeC = map.zoomLatitude(); 
    map.dataProvider.zoomLongitude = map.dataProvider.zoomLongitudeC = map.zoomLongitude(); 

    // update map 
    map.validateData(); 

相關問題