Drawsee 3D 开发指南

地图事件操作

本节目录

地图事件说明

    开发GIS应用,接收和处理各种事件是必不可少的。当地图插件初始化完成后便可以捕获动作事件操作,如键盘按下,鼠标双击等。

    捕获地图事件的方法同“打开地图”时介绍的“插件初始化完成”事件相似。EarthViewerEvents类中定义了可以捕获的所有事件,如下所示:

成员 说明
eventHappen 发生各种类型的系统事件,由名称标识。"initcomplete": 插件初始化完毕
keyPressed 键盘按下
mouseDblClick 鼠标双击事件
mouseDown 鼠标按下事件
mouseMove 鼠标移动事件
mouseUp 鼠标弹起事件
mouseWheel 鼠标滚轮事件
selObject 选中对象消息

    各种事件的用法如下:

类型 函数 描述
void public void eventHappen(string) 事件名称
void public void keyPressed(int) 键盘按下
void public void mouseDblClick(int, int, int) 鼠标双击事件
void public void mouseDown(int, int, int) 鼠标按下事件
void public void mouseMove(int, int) 鼠标移动事件
void public void mouseUp(int, int, int) 鼠标弹起事件
void public void mouseWheel(int) 鼠标滚轮事件
void public void selObject(string, int) 选中对象消息

    在使用这些事件的时候需要通过<script>标记的event属性来调用这些函数,函数的参数则为返回的结果,

    如:

<script language="javascript" for="oEarthViewer" event="eventHappen(eventName)">
var str = eventName; //得到此函数返回的结果,即返回的系统信息类型名称
...

    只需要将这些JavaScript代码框插入到html文档中的<head> 标记中便能够捕获事件了,下面分别介绍这几种事件的使用方法。

系统事件

    eventHappen函数可以捕获各种类型的系统事件,在上面的例子中捕获插件初始化完成的时候,就是这用的这个方法,当返回的信息为initcomplete的时候表示插件初始化完成。

    例如:

<script language="javascript" for="oEarthViewer" event="eventHappen(eventName)" >
	if(eventName == "initcomplete")
	{
		openEarth();
	}
</script>

键盘按下事件

    keyPressed函数捕获键盘按下事件,并得到按下的键值,

类型 名称 说明
int keyCode 键值

    使用方法:

<script language="javascript" for="oEarthViewer" event="keyPressed(keyCode)" >
	alert("按下的键值为: " + keyCode);
</script>

鼠标双击事件

    mouseDblClick函数捕获鼠标双击事件,并可以得到如下数值

类型 名称 说明
int button 鼠标键值 0左键,2右键
int x 屏幕x坐标
int y 屏幕y坐标

    使用方法:

<script language="javascript" for="oEarthViewer" event="mouseDblClick(button, x, y)" >
	alert("鼠标双击事件发生 " + "鼠标键值为: " + button + "屏幕x坐标: " + x + "屏幕y坐标: " + y);
</script>

鼠标按下事件

    mouseDown函数捕获鼠标按下事件,并可以得到如下数值

类型 名称 说明
int button 鼠标键值 0左键,2右键
int x 屏幕x坐标
int y 屏幕y坐标

    使用方法:

<script language="javascript" for="oEarthViewer" event="mouseDown(button, x, y)" >
	alert("鼠标按下事件发生 " + "鼠标键值为: " + button + "屏幕x坐标: " + x + "屏幕y坐标: " + y);
</script>

鼠标移动事件

    mouseMove函数可以捕获鼠标移动事件,并得到如下数值

类型 名称 说明
int x 屏幕x坐标
int y 屏幕y坐标

    使用方法:

<script language="javascript" for="oEarthViewer" event="mouseMove(x, y)">
	window.status("鼠标移动事件发生: " + "屏幕x坐标: " + x + " 屏幕y坐标: " + y) ;
</script>

鼠标弹起事件

    mouseUp谙熟可以捕获鼠标弹起事件,并得到如下数值

类型 名称 说明
int button 鼠标键值 0左键,2右键
int x 屏幕x坐标
int y 屏幕y坐标

    使用方法:

<script language="javascript" for="oEarthViewer" event="mouseUp(button, x, y)" >
	alert("鼠标弹起事件发生 " + "鼠标键值为: " + button + "屏幕x坐标: " + x + "屏幕y坐标: " + y);
</script>

鼠标滚轮事件

    mouseWheel函数可以捕获鼠标滚轮滚动事件,并得到如下数值

类型 名称 说明
int step 滚动参数,大于0表示向前,反之向后

    使用方法:

<script language="javascript" for="oEarthViewer" event="mouseWheel(step)" >
	alert("鼠标弹滚动事件发生 " + "滚动方向: " + step);
</script>

选中实体事件

    selObject函数可以捕获实体被选中事件,当在地图上绘制了实体如小球等之后,此事件个选中这些实体并返回这些实体的如下信息:

类型 名称 说明
int layerName 对象所在图层名称
int oid 对象索引,从0开始

    使用方法:(当选中添加的实体后,得到实体所在的图层名称和实体的索引号)

<script language="javascript" for="oEarthViewer" event="selObject(layerName, oid)">
	alert("实体被选中事件发生: " + " 被选中实体所在图层名: " + layerName + " 实体索引: " + oid);
</script>