博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK地图鼠标事件监听
阅读量:5788 次
发布时间:2019-06-18

本文共 2813 字,大约阅读时间需要 9 分钟。

 

1.功能简介

   地图鼠标事件包含鼠标的按下MouseDown(),弹起MouseUp(),移动MouseMove()等事件,通过这些事件可以对地图进行动态的操作,接下来以地图状态栏的信息为例具体介绍如何使用 这三种事件。

2.功能实现说明

2.1. 实现思路及原理说明

第一步:右键程序主界面控件-》属性-》点击事件(⚡符号)-》找到鼠标模块

  

第二步:找到对应的事件在表格出直接回车键或者双击就可以进入到代码模块(例如鼠标点击事件在MouseDown的第二列回车或者双击即可)

第三步:根据事件写入相应的功能代码

2.2. 核心接口与方法

接口/类

方法/属性

说明

 

PIE.AxControls.MapControl

ToMapPoint

屏幕坐标转换为地图坐标

SpatialReference

设置或获取地图的空间参考

PIE.Geometry.ISpatialReference

Name

设置或获取空间参考Name

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/02.地图操作/06.地图鼠标事件监听

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif(自定义数据即可)

视频路径

百度云盘地址下/PIE视频教程/02.地图操作/06.地图鼠标事件监听.avi

示例代码

1       //本次示例主要以地图的状态栏 2       ///  3         /// 鼠标按下事件 4         ///  5         ///  6         ///  7         private void mapControlMain_MouseDown(object sender, MouseEventArgs e) 8         { 9             MessageBox.Show("鼠标按下事件");10             PIE.Geometry.IPoint point = new PIE.Geometry.Point();11             //将屏幕坐标转换为地图坐标12             point = mapControlMain.ToMapPoint(e.X, e.Y);          13             //弹出坐标信息显示框14             string srcgreenCoor = string.Format("屏幕坐标:X:{0},Y:{1}", e.X, e.Y);15             string mapCoor = string.Format("地图坐标:X:{0},Y:{1}", point.X.ToString(), point.Y.ToString());      16             MessageBox.Show(srcgreenCoor + "\r\n" + mapCoor, "屏幕坐标转换地图坐标");17 18             int x=0, y=0;19             mapControlMain.FromMapPoint(point,ref x,ref y);20             string tempPoint = string.Format("屏幕设备点:X:{0},Y:{1}",x,y);21             MessageBox.Show(mapCoor+"\r\n"+tempPoint, "地图坐标转换为设备点");22         }23 24         /// 25         /// 鼠标移动事件26         /// 27         /// 28         /// 29         private void mapControlMain_MouseMove(object sender, MouseEventArgs e)30         {          31             //1、当地图空间参考为空时,鼠标移动不起作用            32             int layerCount =mapControlMain.FocusMap.GetAllLayer().Count;33             if (layerCount < 1)34             {35                 mapControlMain.SpatialReference = null;36             }37             ISpatialReference spatialReference = mapControlMain.SpatialReference;38             if (spatialReference == null)return;39             this.label_SpatialReference.Text=spatialReference.Name.ToString();40             //2、鼠标移动的屏幕坐标41             this.label_SrcgreenCoordinate.Text=string.Format("{0},{1}",e.X,e.Y);42             //3、鼠标移动的地图坐标43             IPoint point = mapControlMain.ToMapPoint(e.X, e.Y);44             this.label_MapPoint.Text=string.Format("{0},{1}", point.X.ToString("0.0000"), point.Y.ToString("0.0000"));         45         }46 47         /// 48         /// 鼠标弹起事件49         /// 50         /// 51         /// 52         private void mapControlMain_MouseUp(object sender, MouseEventArgs e)53         {54             MessageBox.Show("鼠标弹起事件");55         }
View Code

2.4. 示例截图

 

转载于:https://www.cnblogs.com/PIESat/p/10243823.html

你可能感兴趣的文章
HTTPD
查看>>
log4j记录日志
查看>>
oracle 10g的安装配置
查看>>
GlusterFS分布式文件系统
查看>>
C# 矩阵作业
查看>>
俺的新书《Sencha Touch实战》终于出版了
查看>>
我的python之路(二):python环境安装
查看>>
《空中交通管理基础》-潘卫军主编-第三章-航空器和飞行高度层
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
li下的ul----多级列表
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>
线程退出时执行函数,处理资源
查看>>
java中关于时间的格式化
查看>>
Wine QQ2012 笔记
查看>>
vue全选和取消全选(无bug)
查看>>
学习数组的代码
查看>>
手把手教你通过Eclipse工程配置调用JNI完全攻略
查看>>
mac node版本管理
查看>>
初识Spring Boot
查看>>
Spring 定时执行任务重复执行多次
查看>>