2016-09-16 9 views
0

amChartsマップを使用して地図上にマーカー(オブジェクト)を表示しています。これらのオブジェクトは経度と緯度の変更によって常に移動していますので、オブジェクトの新しい場所でマップを更新するには、validateData()を4秒ごとに呼び出しています。amcharts maps - 更新後にユーザーのズームレベルを維持する

Items on map

問題は、ユーザーがズームインした後、validateData()呼び出しがマップを再描画し、バックズームアウトということです。同じズームレベルを維持しながら地図を再描画するにはどうすればよいですか?

答えて

0

validateDataを呼び出す前に、マップの現在のzoomLevel、zoomLongitude、zoomLatitudeをマップのdataProviderに格納する必要があります。中央に

// 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のウェブサイトからの公式の例から取られたではなく、ゆっくりと、マップズームを行うコードに誤りがあり、それは「ジャンプ」:ここでは正確にすることを行いa demo on AmCharts' websiteからの抜粋です選択した国にズームインします。ソリューションは以下の通りです

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

関連する問題