gpt4 book ai didi

javascript - AMCharts SVG map - 缩放以适合所有国家

转载 作者:行者123 更新时间:2023-11-30 16:44:32 24 4
gpt4 key购买 nike

我正在尝试自动缩放至 map 中的所有国家/地区。如果我使用“groupId”选项对国家/地区进行分组,它会起作用,但我也有一个不需要的组悬停。我需要一次悬停/选择,但想放大到它们适合边界的国家/地区。

这是一个例子:http://jsfiddle.net/wiesson/efbnsmpd/

示例 map 数据:

dataProvider: {
map: "worldHigh",
areas: [{
"id": "AT",
"customData": "Austria",
"link": "austria",
}, {
"id": "HR",
"customData": "Croatia",
"link": "croatia",
}, {
"id": "FR",
"customData": "France",
"link": "france",
}, {
"id": "DE",
"customData": "Germany",
"link": "germany",
}, {
"id": "GR",
"customData": "Greece",
"link": "greece",
}, {
"id": "IT",
"customData": "Italy",
"link": "italy",
}, {
"id": "MA",
"customData": "Malta",
"link": "malta",
}, {
"id": "PT",
"customData": "Portugal",
"link": "portugal",
}, {
"id": "ES",
"customData": "Spain",
"link": "spain",
}, {
"id": "CH",
"customData": "Switzerland",
"link": "switzerland",
}, {
"id": "TR",
"customData": "Turkey",
"link": "turkey",
}, {
"id": "GB",
"customData": "United Kingdom",
"link": "united-kingdom"
}]
}

我是否需要根据我的国家/地区计算纬度/经度(以某种方式)然后缩放? (例如 http://docs.amcharts.com/3/javascriptmaps/AmMap#zoomTo(zoomLevel、zoomX、zoomY、立即))

最佳答案

可能有更好的方法。 zoomToGroup函数可以接受区域对象数组(不是 id,而是真实对象)。所以你可以这样做:

map.addListener("init", function (event) {
var zoomToAreasIds = ['AT', 'HR', 'FR', 'DE', 'GR', 'ID', 'MA', 'PT', 'ES', 'CH', 'TR', 'GB'];
var zoomToAreas = [];
var area;
for(var i = 0; i < zoomToAreasIds.length; i++) {
if (area = map.getObjectById(zoomToAreasIds[i]))
zoomToAreas.push(area);
}
map.zoomToGroup(zoomToAreas);
});

这是您更新后的 fiddle :

http://jsfiddle.net/amcharts/efbnsmpd/6/

关于javascript - AMCharts SVG map - 缩放以适合所有国家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com