地图事件操作
本节目录
地图事件说明
开发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函数捕获键盘按下事件,并得到按下的键值,
使用方法:
<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>