OpenLayers 3ダブルクリック描画終了調整による地図拡大
10592 ワード
OpenLayers 3ダブルクリック描画終了調整による地図拡大前言 原因 解決方法 根源上の を根絶する巧みさ 通常動作 付録 文字と数字キーのキー値テーブル ディジタルキーボード上のキーのキー値と機能キー値テーブル 制御キーコード値テーブル 前言
昨日の検収討論では、指導者は地図ツールの中で測距、測面、その他のダブルクリックの終了が必要な操作について疑問を抱いた.本来は正確に描かれていたが,拡大するとまた正確ではない.乙女座の刀を抱いてネット上で多くの招待状を见て、しかし実际にはあまりよくなくて、各种の报道は间违って、やはり记录すると感じます.
の原因となる
描画終了の操作と地図ズームの操作はいずれも地図をダブルクリックすることで実現され、地図のデフォルトロード時にはダブルクリックズームイベント(DoubleClickZoom)を含む9種類のイベントが存在するため、操作が速い場合は操作に影響を与える.
解決策
根元から根絶する.
mapの初期ロードをルートから根絶することで、デフォルトのロード時に地図のダブルクリック拡大の操作を禁止できます.
もちろん、この方法は、拡大する必要があるパートナーをダブルクリックするのに適していません.
うまい汁を吸う
考え方を変えて、人為的にダブルクリックの操作を放棄して、キーボード操作によって描画の取り消し、終了などを操作して、Drawはデフォルトでは描画をクリックして、ダブルクリックして描画を終了して、マウスの左右のボタンが押した時だけ、MapBrowserEvent類のイベントをトリガーするので、OpenLayersのメカニズムを使ってボタンの目的を実現することはできません.Dom要素の操作によるキーボード操作
一般的な操作
通常の思考では、描画と拡大に問題が発生し、終了時にのみ存在するため、操作の分割、ツールの定義時にDoubleClickZoomイベントを見つけ、役割ドメイン定義宣言、描画前に削除し、描画後に追加し、時間差を利用して人為的な操作の問題を操作する.
100 msのしきい値は自分で操作できます.
ふろく
アルファベットと数字キーのキー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
A
65
J
74
S
83
1
49
B
66
K
75
T
84
2
50
C
67
L
76
U
85
3
51
D
68
M
77
V
86
4
52
E
69
N
78
W
87
5
53
F
70
O
79
X
88
6
54
G
71
P
80
Y
89
7
55
H
72
Q
81
Z
90
8
56
I
73
R
82
0
48
9
57
デジタルキーボード上のキーのキー値と機能キー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
0
96
8
104
F1
112
F7
118
1
97
9
105
F2
113
F8
119
2
98
*
106
F3
114
F9
120
3
99
+
107
F4
115
F10
121
4
100
Enter
108
F5
116
F11
122
5
101
-
109
F6
117
F12
123
6
102
.
110
7
103
/
111
コントロールキー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
BackSpace
8
Esc
27
Right Arrow
39
-_
189
Tab
9
Spacebar
32
Dw Arrow
40
.>
190
Clear
12
Page Up
33
Insert
45
/?
191
Enter
13
Page Down
34
Delete
46
`~
192
Shift
16
End
35
Num Lock
144
[{
219
Control
17
Home
36
;:
186
\
220
Alt
18
Left Arrow
37
=+
187
]}
221
Cape Lock
20
Up Arrow
38
,<
188
'"
222
昨日の検収討論では、指導者は地図ツールの中で測距、測面、その他のダブルクリックの終了が必要な操作について疑問を抱いた.本来は正確に描かれていたが,拡大するとまた正確ではない.乙女座の刀を抱いてネット上で多くの招待状を见て、しかし実际にはあまりよくなくて、各种の报道は间违って、やはり记录すると感じます.
の原因となる
描画終了の操作と地図ズームの操作はいずれも地図をダブルクリックすることで実現され、地図のデフォルトロード時にはダブルクリックズームイベント(DoubleClickZoom)を含む9種類のイベントが存在するため、操作が速い場合は操作に影響を与える.
解決策
根元から根絶する.
mapの初期ロードをルートから根絶することで、デフォルトのロード時に地図のダブルクリック拡大の操作を禁止できます.
var map = new ol.Map({
layers : [layer],
target : id,
view : new ol.View({
projection : 'EPSG:4326',
center : [ 117.57,33.27 ],
zoom : 9.5,
}),
interactions: ol.interaction.defaults({
doubleClickZoom: false,//
mouseWheelZoom: false, //
shiftDragZoom: false, // shift+wheel
})
});
もちろん、この方法は、拡大する必要があるパートナーをダブルクリックするのに適していません.
うまい汁を吸う
考え方を変えて、人為的にダブルクリックの操作を放棄して、キーボード操作によって描画の取り消し、終了などを操作して、Drawはデフォルトでは描画をクリックして、ダブルクリックして描画を終了して、マウスの左右のボタンが押した時だけ、MapBrowserEvent類のイベントをトリガーするので、OpenLayersのメカニズムを使ってボタンの目的を実現することはできません.Dom要素の操作によるキーボード操作
$(target).keyup(function (event) {
if (event.keyCode == 27)//ESC
draw.finish();
else if (event.keyCode == 90 && event.ctrlKey) { //ctrl+z
draw.removeLastPoint();
}
})
// , , ,
一般的な操作
通常の思考では、描画と拡大に問題が発生し、終了時にのみ存在するため、操作の分割、ツールの定義時にDoubleClickZoomイベントを見つけ、役割ドメイン定義宣言、描画前に削除し、描画後に追加し、時間差を利用して人為的な操作の問題を操作する.
var doubleClickZoom= map.getInteractions().getArray().find(
interaction => {
return interaction instanceof ol.interaction.DoubleClickZoom;
}
);
draw.on('drawstart', function(evt) {
map.removeInteraction(doubleClickZoom);
}, this);
draw.on('drawend', function(evt) {
setTimeout(function(){
map.addInteraction(doubleClickZoom);
},100);
}, this);
100 msのしきい値は自分で操作できます.
ふろく
アルファベットと数字キーのキー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
A
65
J
74
S
83
1
49
B
66
K
75
T
84
2
50
C
67
L
76
U
85
3
51
D
68
M
77
V
86
4
52
E
69
N
78
W
87
5
53
F
70
O
79
X
88
6
54
G
71
P
80
Y
89
7
55
H
72
Q
81
Z
90
8
56
I
73
R
82
0
48
9
57
デジタルキーボード上のキーのキー値と機能キー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
0
96
8
104
F1
112
F7
118
1
97
9
105
F2
113
F8
119
2
98
*
106
F3
114
F9
120
3
99
+
107
F4
115
F10
121
4
100
Enter
108
F5
116
F11
122
5
101
-
109
F6
117
F12
123
6
102
.
110
7
103
/
111
コントロールキー値テーブル
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
キーを押す
キーコード
BackSpace
8
Esc
27
Right Arrow
39
-_
189
Tab
9
Spacebar
32
Dw Arrow
40
.>
190
Clear
12
Page Up
33
Insert
45
/?
191
Enter
13
Page Down
34
Delete
46
`~
192
Shift
16
End
35
Num Lock
144
[{
219
Control
17
Home
36
;:
186
\
220
Alt
18
Left Arrow
37
=+
187
]}
221
Cape Lock
20
Up Arrow
38
,<
188
'"
222