Drawsee 3D 开发指南

地图基本操作

本节目录

引用地图控件

    本平台采用ActiveX技术实现。在网页中可以使用object标签引用本插件,并可以得到插件的引用,通过这个引用就可以调用插件中提供的相关方法来完成对地图的各种操作了。要创建一个简单的WebGis引用,首先要建立一个html文档,并把<object>标签插入到html文档中的<body>标签中间。

...
<body>

<object id="oEarthViewer" codeBase="http://dev.drawsee.com/3dsimple/MeEarth20.CAB#version=1,0,0,5" height="500px" width="100%" classid="CLSID:C54A9308-CECF-42F4-85DD-96F8AD9A67C6" viewastext></object>

</body>
...

    属性说明:

  • id:唯一标示。通常为:id = oEarthViewer。
  • codeBase:oEarthViewer包的位置,可根据实际情况设置,如放在程序目录下时,则为codeBase = MeEarth20.CAB。
  • version:MeEarth20.CAB包对应的版本号。

显示地图

    只有当插件初始化完成后,才可以调用插件提供的相关方法对地图进行操作。因此要显示地图首先需要捕获插件发出的信息。

    1. 捕获"插件初始化完成"事件

    当对地图进行不同操作时,插件会发出不同类型的消息。因此需要分别添加不同的方法来接受插件发出的各种信息。其中eventHappen()方法用来获取插件初始化完成事件。

    用法:

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

    2. 打开图库

    通过oEarthViewer类的openTerrain方法打开背景地形和影像。并将其写入到JavaScript函数中,然后插入到html文件的<head>标记中:

<script language="javascript">
	function openEarth()
	{
		oEarthViewer.openTerrain("http://www.mapok.com/service20/TerrainService/TerrainService.asmx/","China", 
		"http://www.mapok.com/service20/TerrainImageService/TerrainImageService.asmx/","earthnew");
	}
</script>

    openTerrain方法说明

类型 名称 说明
string terrainService 地形服务器路径,如"http://www.mapok.com/service20/TerrainService/TerrainService.asmx/
string terrainName 地形库名称
string textureService 影像服务器名称,如"http://www.mapok.com/service20/TerrainImageService/TerrainImageService.asmx/"
string textureName 影像库名称

    通过上述步骤便可以完成打开地图的操作,完整的代码如下:

<html>
	<head>
		<title>加载地图的简单例子</title>

		<script language="javascript">
			function openEarth()
			{
				oEarthViewer.openTerrain("http://www.mapok.com/service20/TerrainService/TerrainService.asmx/","China", 
				"http://www.mapok.com/service20/TerrainImageService/TerrainImageService.asmx/","earthnew");
			}
		</script>
		
		<script language="javascript" for="oEarthViewer" event="eventHappen(eventName)">
			if(eventName == "initcomplete")
			{
				openEarth();
			}
		</script>
	</head>

	<body>
		<object id="oEarthViewer" codeBase="MeEarth20.CAB#version=1,0,0,5" height="100%" width="100%" cl
		assid="CLSID:C54A9308-CECF-42F4-85DD-96F8AD9A67C6" viewastext></object>
	</body>
</html>