Установите и масштабируйте карту страны динамически в AMMAP

Я работаю с последней версией jmap для ammap и пытаюсь найти правильную страну для загрузки при загрузке страницы. Я знаю, что вы можете загрузить нужную страну, просто загрузив правильный файл страны js

<script src="/js/ammap/maps/js/australiaLow.js"></script> 

а затем правильно установите поставщик данных

var dataProvider = {
mapVar: AmCharts.maps.australiaLow,
getAreasFromMap: true
};

Но моя цель - начать с continentsLow и перейти к правильной стране, используя javascript и не взаимодействуя с пользователем. Это потому, что пользователи должны иметь возможность перемещаться на всех уровнях, и карты должны загружаться соответствующим образом.

<script src="/js/ammap/maps/js/australiaLow.js"></script>

Это похоже на страницу примера, но в этом примере. Но в этом примере вы должны нажать, чтобы увидеть правильную страну. http://www.ammap.com/javascript-maps/zooming-to-countries-map/ Я попытался загрузить карту и установить ее, а затем перезагрузить ammap, но безуспешно.

map.selectObject(map.getObjectById("AU")); 

есть идеи как это сделать?

5 ответов

Решение

У меня была такая же потребность, и в итоге я использовал метод clickMapObject для имитации щелчка по объекту карты, с которого я хотел начать:

var mapObject = map.getObjectById('US');
map.clickMapObject(mapObject);

Когда я загружаю страницу, она приближается к выбранной стране (США).

В соответствии с их страницей советов http://www.amcharts.com/tips/auto-zoom-country-map-loads/ самое простое решение IMO - установить linkToObject в dataProvider:

"dataProvider": {
    "map": "worldLow",
    "getAreasFromMap": true,
    "linkToObject": "US"
},

Альтернативное решение:

map.zoomToGroup([map.getObjectById('RO')]);

Карта начнется с увеличения выбранного региона.

map.addListener("clickMapObject", function (event) { if (event.mapObject.id == "FR") { loadNewMap("http://www.ammap.com/lib/maps/js/franceLow.js", "franceLow"); }

демоверсия jsfiddle

Я думаю это поможет

Мое решение:

http://kirmizikaya.net/blog/ammap-dynamically-load-map-of-the-country-on-click/

.......
$.getScript (имя файла, функция (data, textStatus, jqxhr) {})
 .done(функция (script, textStatus)
 {
       var dataProvider = {
       mapVar: eval(mapVar),
       getAreasFromMap: true,
     };
      // ilgili ülkenin haritasını bağlayalım
      map.dataProvider = dataProvider;
      // харита юкленсин
map.validateData();
});
...
......
Другие вопросы по тегам