在AMMAP中动态设置和缩放国家/地区地图

时间:2013-06-20 13:10:39

标签: javascript ammap

我正在使用ammap的最新javascript版本,我正在尝试在加载页面时加载正确的国家/地区。我知道您只需加载正确的国家/地区js文件即可加载正确的国家/地区

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

然后正确设置数据提供者

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

但我的目标是从各大洲开始,并使用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 个答案:

答案 0 :(得分:2)

我有同样的需求,我最终做的是使用clickMapObject方法来模拟我希望它开始的地图对象的点击:

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

当我加载页面时,它会缩放到我选择的国家(美国)。

答案 1 :(得分:2)

根据他们的提示页http://www.amcharts.com/tips/auto-zoom-country-map-loads/,最简单的解决方案IMO是在linkToObject中设置dataProvider

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

答案 2 :(得分:1)

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

jsfiddle demo

我认为这会有所帮助

答案 3 :(得分:1)

替代解决方案:

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

地图将从放大的选定区域开始。

答案 4 :(得分:0)

我的解决方案:

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

..
.....
$.getScript(filename, function (data, textStatus, jqxhr) {})
 .done(function (script, textStatus)
 {
       var dataProvider = {
       mapVar: eval(mapVar),
       getAreasFromMap: true,
     };
      // ilgili ülkenin haritasını bağlayalım
      map.dataProvider = dataProvider;
      //harita yüklensin
map.validateData();
});
...
......