SkyLine JS API介绍及二次开发环境

一、二次开发概述

TerraExplorePro提供了一整套的API,供二次开发使用,它提供了一些访问外部信息的方法,比如:数据库或矢量数据的。所有这些以COM协议为基础的界面都可以通过脚本语言管理,也可通过非脚本语言控制(如:C++或Visual Basic)来开发(c/s)。TerraExplorePro也可以设置ActiveX控件。它作为ActiveX控件通常被应用在可视化界面的3D窗口、信息树、导航图的操作。

二、TerraExplorePRO API的功能

用户接口API:是对标准TerraExplorer Pro API的扩充。利用其强大功能,开发人员可控制和激活大多数TerraExplorer Pro的工具和函数。如:

1、控制飞行和视景

2、对象的创建

3、信息树和管理

4、层和对象管理

5、事件处理

6、在网页和windows应用程序中添加ActiveX控件 另外,TerraExplorerPro的API还允许常用的一些操作,比如控制容器中的内容,查询地形高度信息,获取快照,查找对象等更多操作。

三、开发准备

1、开发环境(B/S)

本地开发环境(IIS,TEPro, 根据项目的要求具体选择服务器端的语言和客户端的脚本语言,如:asp,asp.net,jsp,php…..,使用的开发工具用: Microsoft Visual Studio .NET 2003/5, 客户端脚本语言:javascript/jscript,vbscript,使用的开发的工具:UltraEdit,Editplus等等,根据自己爱好) 网络开发环境:在服务器上进行开发和调试,但在服务器上必须安装internet lic+TerraGate的情况下,才能应用,本机只需安装TE即可; 客户端需要安装TE(TerraExplorer)+ IE60版本即可使用本系统。

2、 在网页中如何使用Activex控件

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>网页标题</title>
</head>
<body> /
<!--定义TerraExplorer的信息窗口对象-->
<object ID="TEInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" width="300" height="400"></object>
<!--定义一个TerraExplorer 3D窗口对象-->
<object ID="TE3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" width=650 height="400"></object>
<!--定义TerraExplorer对象-->
<object ID="TE" CLASSId="CLSID:3a4f9197-65a8-11d5-85c1-0001023952c1">
</object>
</html>

四、HelloWorld

下面先通过一个简单的例子介绍一下如何使用API加载一个三维地图。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Skyline JS EX</title>
<script type="text/javascript">
/**
 *
 *初始化页面,加载工程,监听工程加载完毕事件
 *
 */
function Init() {
    try {
        //fly文件路径
        var flyPath = "D:\\SkylineEX\\flys\\Ex.FLY";
        //添加onloadFinished事件
        SGWorld65.AttachEvent("OnLoadFinished", OnProjectLoadFinished);
        //打开工程
        SGWorld65.Project.Open(flyPath);
    }
    catch (e) {
        alert("Error: " + e.description);
    }
}
/**
 *
 *onloadFinished事件方法
 *
 */
function OnProjectLoadFinished() {
    //创建位置
	var China = SGWorld65.Creator.CreatePosition(112.46212296451202,32.02717019165982,12946949.476816356,0,352,-90);
    //相机定位到声明的位置
    SGWorld65.Navigate.FlyTo(China);
}
/**
 *
 *鼠标移动事件
 *
 */
function OnMouseMoved(){
    //获取相机当前位置信息
	var current = SGWorld65.Navigate.GetPosition();
    //在消息栏显示出相机相关信息
    SGWorld65.Window.ShowMessageBarText("X:" + current.X +"  Y:" +  current.Y + "  Z:" + current.Altitude + "Yaw:" + current.Yaw);
}
</script>
</head>
<body οnlοad="Init()">
    <!--定义一个TerraExplorer 3D窗口对象-->
    <object id="TE" classid="clsid:3a4f9192-65a8-11d5-85c1-0001023952c1" οnmοusemοve="OnMouseMoved()" style="width: 100%;height: 100%"></object>
    <!--定义TerraExplorer对象SGWorld65-->
    <object id="SGWorld65" classid="CLSID:3a4f9197-65a8-11d5-85c1-0001023952c1" style="visibility: hidden;height: 0"></object>
</body>
</html>

以下是运行效果: 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值