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

示例代码

       //本次示例主要以地图的状态栏
/// <summary>
/// 鼠标按下事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void mapControlMain_MouseDown(object sender, MouseEventArgs e)
{
MessageBox.Show("鼠标按下事件");
PIE.Geometry.IPoint point = new PIE.Geometry.Point();
//将屏幕坐标转换为地图坐标
point = mapControlMain.ToMapPoint(e.X, e.Y);
//弹出坐标信息显示框
string srcgreenCoor = string.Format("屏幕坐标:X:{0},Y:{1}", e.X, e.Y);
string mapCoor = string.Format("地图坐标:X:{0},Y:{1}", point.X.ToString(), point.Y.ToString());
MessageBox.Show(srcgreenCoor + "\r\n" + mapCoor, "屏幕坐标转换地图坐标"); int x=, y=;
mapControlMain.FromMapPoint(point,ref x,ref y);
string tempPoint = string.Format("屏幕设备点:X:{0},Y:{1}",x,y);
MessageBox.Show(mapCoor+"\r\n"+tempPoint, "地图坐标转换为设备点");
} /// <summary>
/// 鼠标移动事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void mapControlMain_MouseMove(object sender, MouseEventArgs e)
{
//1、当地图空间参考为空时,鼠标移动不起作用
int layerCount =mapControlMain.FocusMap.GetAllLayer().Count;
if (layerCount < )
{
mapControlMain.SpatialReference = null;
}
ISpatialReference spatialReference = mapControlMain.SpatialReference;
if (spatialReference == null)return;
this.label_SpatialReference.Text=spatialReference.Name.ToString();
//2、鼠标移动的屏幕坐标
this.label_SrcgreenCoordinate.Text=string.Format("{0},{1}",e.X,e.Y);
//3、鼠标移动的地图坐标
IPoint point = mapControlMain.ToMapPoint(e.X, e.Y);
this.label_MapPoint.Text=string.Format("{0},{1}", point.X.ToString("0.0000"), point.Y.ToString("0.0000"));
} /// <summary>
/// 鼠标弹起事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void mapControlMain_MouseUp(object sender, MouseEventArgs e)
{
MessageBox.Show("鼠标弹起事件");
}

2.4. 示例截图

PIE SDK地图鼠标事件监听的更多相关文章

  1. 高德地图marker事件监听-高德地图marker绑定事件就执行了[解决立即执行]

    官方的demo是这样的:地址:[http://lbs.amap.com/api/javascript-api/example/infowindow/add-infowindows-to-multipl ...

  2. JavaScript-4.6鼠标事件监听,获取鼠标坐标window.event---ShinePans

    <html> <head> <meta http-equiv="content-type" content="text/html" ...

  3. java 事件监听 - 鼠标

    java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...

  4. Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

  5. PIE SDK地图范围设置和图层事件监听

    1. 功能简介 地图范围设置的监听就是通过IMapControlEvents接口对地图的视图范围更新或者地图的分辨率发生变化进行监听,然后做出相应的操作. 图层事件的监听就是通过IActiveView ...

  6. PIE SDK栅格图层渲染变化事件监听

    1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...

  7. java鼠标与键盘事件监听

    package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...

  8. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  9. Android事件监听(二)——点击鼠标事件

    Button.ImageButton事件监听(setOnClickListener) 方法一:通过匿名内部类实现 代码如下: package com.note.demo2; import androi ...

随机推荐

  1. 第十八课 Gazebo仿真器

    1.Gazebo概述 在Gazebo中的模拟效果是非常好的. 它的特性 Dynamics Simulation 直接控制物理引擎参数 Building Editor 无需代码即可在Gazebo中创建机 ...

  2. Quartus II 14.0正式版 下载链接和破解器

    Windows版本 必装组件: Quartus II http://download.altera.com/akdlm/software/acdsinst/14.0/200/ib_installers ...

  3. 编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式

    建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的.任何LINQ查询都能通过扩展方法的方式来代替. var personWithCompanyList = f ...

  4. poj2513 Fence Repair(小根堆)

    Description Farmer John wants to repair a small length of the fence around the pasture. He measures ...

  5. [转]-webkit-overflow-scrolling:touch的应用

    -webkit-overflow-scrolling 用来控制元素在移动设备上是否使用滚动回弹效果. 在移动端上,在你用overflow-y:scorll属性的时候,你会发现滚动的效果很木,很慢,这时 ...

  6. MVC Action控制方式

    1.Controller 的OnActionExecuting中控制 protected override void OnActionExecuting(ActionExecutingContext ...

  7. It企业的上市与退市

    目前我国的it上市公司有同方股份.华胜天成.长城电脑.航天信息.用友软件.中国软件.东软集团.长电科技.华东科技.航天长峰.航天科技.士兰微.上海贝岭等等. 一般来讲公司上市是为了融资,一是为了解决资 ...

  8. java學習書

    轉載 成为Java顶尖程序员 ,看这11本书就够了 以下是我推荐给Java开发者们的一些值得一看的好书.但是这些书里面并没有Java基础.Java教程之类的书,不是我不推荐,而是离我自己学习 Java ...

  9. WPF 控件库——仿制Chrome的ColorPicker

    WPF 控件库系列博文地址: WPF 控件库——仿制Chrome的ColorPicker WPF 控件库——仿制Windows10的进度条 WPF 控件库——轮播控件 WPF 控件库——带有惯性的Sc ...

  10. 使用VS Code编写Markdown文件

    VS Code默认支持Markdown文件文件格式,这里介绍两个比较实用的功能,后续有新发现,可以持续更新. 实时预览 顾名思义,实时编辑,实时预览解析效果. 在VS Code扩展中搜索"M ...