ありがとう、私はこれらの関数が存在することを知りませんでした...そしてドキュメントで見つけることができません。(Version 1.1.1からの新たな修正ですか?)
clearSelectedRegions は SelectedRegions を stepp ごとに削除し、stepp ごとに関数の最初の行から開始するため、これら 2 つの関数を実現するために使用するのは少しトリッキーです。
選択したリージョンを保存するには、 of を使用したか、length
of (container = map object)selectedRegions
を使用できます。さらに、基本値 isという名前の var を作成しました。長さが 0 の領域を選択していない場合、これは役に立ちます (理由は後で説明します)。length
container.getSelectedRegions()
switch_land
false
length = selectedRegions.length;
switch_land = false;
if (length === 1) {
land_first = selectedRegions[0];
}
land_first は、選択した最初の土地を保存します。2 番目のステップでは、新しく選択したリージョンを見つけることが重要です。テストの結果、selectedRegions の 2 番目の値は、選択した 2 番目のリージョンであるとは限らないことがわかりました。
if (length === 2) {
if (land_first !== selectedRegions[0]) {
selectedRegions[1] = selectedRegions[0];
selectedRegions[0] = land_first;
最後の 2 行は、最初に選択したリージョンを に保存しselectedRegion[0]
ます。領域は常に選択領域配列の 2 番目の値に保存されるため、関数 pop() を使用して最新の選択領域を毎回保存できるため、これらは非常に優れています。
}
region_delete = true;
regions = selectedRegions;
land_secound = regions.pop();
container.clearSelectedRegions();
switch_land = true;
}
次のステップで region_delete を使用して、マニュエルの選択解除を停止しました。(リージョンを 1 回、2 回クリックすることができます。別のリージョンをクリックしている限り、そのリージョンは選択されたままです)
if (typeof region_delete === 'undefined'){
region_delete = false;
}
if (length === 0 && region_delete === false){
selected_region(land_first, false, true);
}
関数 selected_region については最後に説明します。最後に、最新の土地を選択する必要があります。そして、ユーザーが領域をクリックして領域の選択を解除する瞬間を見つけるために、length
とともに 0を使用しました。region_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;
}
}
false を選択status_1 = false
していない場合は、領域がマウス アウトされた後、土地がホバリングされ、選択した色が表示されることがわかります。
問題は、変数を使用して値を変更できないことですcontainer.regions.selectedRegions[0].element.setSelected(status_2);
。これが主な問題であり、最初の質問を書いた理由です;)