ArcEngine中使用上下左右键移动地图
生活随笔
收集整理的這篇文章主要介紹了
ArcEngine中使用上下左右键移动地图
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)自愿文ArcEngine中使用上下左右鍵移動(dòng)地圖
?
?
因項(xiàng)目需要,需對(duì)mapcontrol控件響應(yīng)上下左右鍵,從網(wǎng)上找的方法都一樣,都值提到了需要設(shè)置axMapControl1的KeyIntercept屬性為1,但這樣做的結(jié)果是,除了自己在onkeydown中設(shè)置的平移1/10個(gè)屏幕大小外,系統(tǒng)還會(huì)有一個(gè)默認(rèn)的平移操作。經(jīng)研究發(fā)現(xiàn),設(shè)置axMapControl1的autokeyboardscrolling屬性為false即可屏蔽系統(tǒng)默認(rèn)的對(duì)上下左右鍵的相應(yīng)方法。
axMapControl1.AutoKeyBoardScrolling=false; axMapControl1.KeyIntercept = 1; private void axMapControl1_OnKeyDown(object sender, ESRI.ArcGIS.MapControl.IMapControlEvents2_OnKeyDownEvent e) { switch (e.keyCode) { case (int)System.Windows.Forms.Keys.Up: PanMap(0d, 0.5d); break; case (int)System.Windows.Forms.Keys.Down: PanMap(0d, -0.5d); break; case (int)System.Windows.Forms.Keys.Left: PanMap(-0.5d, 0d); break; case (int)System.Windows.Forms.Keys.Right: PanMap(0.5d, 0d); break; } } private void PanMap(double ratioX, double ratioY) { //Pans map by amount specified given in a fraction of the extent e.g. rationX=0.5, pan right by half a screen IEnvelope envelope = axMapControl1.Extent; double h = envelope.Width; double w = envelope.Height; envelope.Offset(h * ratioX, w * ratioY); axMapControl1.Extent = envelope; }?
轉(zhuǎn)載于:https://www.cnblogs.com/arxive/p/6262706.html
總結(jié)
以上是生活随笔為你收集整理的ArcEngine中使用上下左右键移动地图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ffmpeg库音频解码示例
- 下一篇: 【6G】算力网络技术白皮书整理