谢谢,我不知道这些功能存在......而且我在文档中找不到它。(是 1.1.1 版本的新修改吗?)
使用这两个函数来实现有点棘手,因为 clearSelectedRegions 一步一步删除 SelectedRegions 并且每一步从函数的第一行开始。
为了保存选定的区域,我使用了length
ofselectedRegions
或者您可以使用length
of (container = map object) container.getSelectedRegions()
。此外,我创建了一个名为switch_land
它们的基本值的变量是false
. 如果我们没有选择长度为 0 的区域,这很有帮助(稍后我会告诉你原因)。
length = selectedRegions.length;
switch_land = false;
if (length === 1) {
land_first = selectedRegions[0];
}
land_first 保存您选择的第一块土地。在第二步中,重要的是找到新的选定区域。通过测试,我发现 selectedRegions 的第二个值并不是每次您选择的第二个区域。
if (length === 2) {
if (land_first !== selectedRegions[0]) {
selectedRegions[1] = selectedRegions[0];
selectedRegions[0] = land_first;
最后两行将第一个选定的区域保存到selectedRegion[0]
. 这些非常好,因为现在我们可以使用函数 pop() 每次保存最新的选定区域,因为该区域始终保存在选定区域数组的第二个值中。
}
region_delete = true;
regions = selectedRegions;
land_secound = regions.pop();
container.clearSelectedRegions();
switch_land = true;
}
我在下一步中使用了 region_delete 来停止手动取消选择。(您可以在一个区域上单击一次、两次等,只要您单击另一个区域,该区域就会保持选中状态)
if (typeof region_delete === 'undefined'){
region_delete = false;
}
if (length === 0 && region_delete === false){
selected_region(land_first, false, true);
}
我将在最后描述函数 selected_region。最后,我们必须选择最新的土地。我已经使用length
0region_delte
来找出用户单击区域以取消选择该区域的时刻。
if (switch_land === true) {
selectedRegions[0] = land_secound;
selected_region(land_secound, false, true);
delete land_secound;
region_delete = false;
}
就这样。现在我会给你一个带有 GER 区域的 selected_region 示例。
function selected_region(selected_regions, status_1, status_2) {
switch (selected_regions) {
case "GER":
container.regions.GER.element.isSelected = status_1;
container.regions.GER.element.setSelected(status_2);
break;
}
}
对于区域切换,您选择很重要status_1 = false
,如果您没有选择false,您可以看到土地悬停并且区域鼠标移出后将显示选择颜色。
问题是我不能使用 var 来更改类似的值container.regions.selectedRegions[0].element.setSelected(status_2);
,这是主要问题,也是我写第一个问题的原因;)