2019独角兽企业重金招聘Python工程师标准>>>

Skyline地图数据加载方法,这个是最基础的操作步骤,然后再进行拓展,通过API文档可以查询到所有Js的方法引用说明。

注意事项

在Skyline Web Js 二次开发中,凡是TerraExplorer里面的功能在API中都有对应的方法,可以根据TE里面的菜单名称找到对应的方法(如:Navigate菜单下的所有功能对应API中Navigate下的所有方法),可以方便快捷的进行二次开发,有些功能方法藏的比较深,需要自行理解和发掘。

需求分解

  1. 加载工程文件
  2. 添加事件信息
  3. 创建坐标点位
  4. 飞行到坐标点
  5. 每次移动屏幕相机画面,获取坐标点信息,并显示在消息栏中

方法说明

  • SGWorld66.AttachEvent(bstrEventName,DispFunc);
  • 添加事件,这里值得一提,Skyline的API文档实在是太烂了,因为在说明里,并没有明确指出具体事件的名称,其实它所指的事件名称就在API文档ISGWorld的列表里面,On打头的都是可使用的事件QAQ。
  • SGWorld66.Project.Open();
  • 打开工程文件
  • SGWorld66.Creator.CreatePosition(X,Y,Altitude,AltitudeType,Yaw,Pitch,Roll,Distance);
  • 创建坐标点,X和Y表示坐标值,Altitude为点位的高度值的可选参数,AltitudeType为高度类型的可选参数,Yaw为偏航(即左右旋转度数,范围0-360度,0为北,90为东,180为南,270为西),Pitch为俯仰角度(0为水平面,+90度为仰视最大角度,-90度为俯视最大角度,测试时建议先用俯视角度进行测试比较容易确定具体点位),Roll为翻滚(没用过。),Distance为距离(即离目标点位的距离,这个参数建议最好设置从50开始,否则从原点0进行测试,你会发现视角严重偏离),一般来说设置X,Y,Alititude这3个参数,即可显示出效果,其余的参数用于图片覆盖旋转角度、设置飞行路径等会用到,需要不断尝试
  • SGWorld66.Navigate.FlyTo(target,Pattern);
  • 飞行到目标位置,target有4种类型(1.对象ID字符串 2.对象ITerraExplorerObject66 3.工程目录树中的GroupID值ProjectTree GroupID 4.坐标点对象IPosition66 object);Pattern为可选参数,即飞行方式,详见API
  • SGWorld66.Navigate.GetPosition(AltitudeType);
  • 获取导航位置,AltitudeType类型为可选参数,详见API;返回值类型为IPosition66,坐标类型对象,对象属性值详见API
  • SGWorld66.Window.ShowMessageBarText(Text,Alignment,Timeout);
  • 在消息显示栏中显示信息,Text为文本信息,Alignment为显示的位置的可选参数(0-左 1-中 2-右),Timeout为显示时间的可选参数

Jsp源码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><html><script type="text/javascript" >/*** 初始化*/function Init() {try {var flyPath = "http://192.168.1.224:8090/default0505.fly";//添加onloadFinished事件SGWorld66.AttachEvent("OnLoadFinished", OnProjectLoadFinished);//打开工程SGWorld66.Project.Open(flyPath);} catch (e) {alert("Error: " + e.description);}}/***onloadFinished事件方法*/function OnProjectLoadFinished() {//创建位置var China = SGWorld66.Creator.CreatePosition(116.38752366300,39.99765237460,15000,0,352,-90);//相机定位到声明的位置SGWorld66.Navigate.FlyTo(China);}/***鼠标移动事件*/function OnMouseMoved(){//获取相机当前位置信息var current = SGWorld66.Navigate.GetPosition();//在消息栏显示出相机相关信息SGWorld66.Window.ShowMessageBarText("X:" + current.X +"  Y:" +  current.Y + "  Z:" + current.Altitude + "  Yaw:" + current.Yaw);}</script><body onload = "Init();"><!--定义一个TerraExplorer 3D窗口对象--><object id="TE" classid="clsid:3a4f9192-65a8-11d5-85c1-0001023952c1" onmousemove="OnMouseMoved()" style="width: 80%;height: 100%"></object><!--定义TerraExplorer对象SGWorld65--><object id="SGWorld66" classid="CLSID:3A4F9199-65A8-11D5-85C1-0001023952C1" style="visibility:hidden;height:0 "></object><!--定义一个TerraExplorer 信息窗口对象--><object id="TEInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" width="15%" height="100%"></object></div></body></html>

转载于:https://my.oschina.net/discussjava/blog/896816

Skyline Web 二次开发- 1.地图显示、Position、AttachEvent相关推荐

  1. 海康大华天地伟业网络摄像头chrome浏览器web二次开发

    海康大华天地伟业网络摄像头chrome浏览器二次开发 海康大华天地伟业网络摄像头chrome浏览器web二次开发 由于工作的原因需要开发海康和大华,还有天地伟业的摄像头,而且必须是本地部署开发,每个厂 ...

  2. 海康威视摄像头web二次开发(angular)

    海康威视官网有提供二次开发的web开发包,主要由js,html组成,但是开发包更新迭代太快了,甲方的摄像头还是老版本,幸好甲方提供了它们的开发包(内涵demo,doc). 测试环境 在web包里面里面 ...

  3. 高德地图web 二次开发

    初始化 map = new AMap.Map("mapContainer", {resizeEnable: true,zoom: 10,//city:$('#input_addre ...

  4. ABB机器人二次开发:使用Web网页读取机器人系统信息的操作方法

    本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 概述 对于ABB机器人进行远程监控,除了使用PC SDK二次开发后生成远程监控程序以外,还可以使用ABB机 ...

  5. Skyline 7 版本TerraExplorer Pro二次开发快速入门

    要想熟练掌握Skyline软件的二次开发,首先需要真正了解Skyline系列软件的整体架构,以及每个产品模块的运行的内部机制,尤其是TerraExplorer Pro软件的具体功能和使用技巧. 如果你 ...

  6. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能

    文章目录 前言 一.功能说明 二.代码实现 1.创建界面Page 2.WXML 3.JS 4.WXSS 专题文章链接 前言 案例的运行效果,可以扫码观看: 本篇文章,我们将实现应用的用户反馈功能. 一 ...

  7. 二次开发photoshop_Photoshop 101:Web开发人员简介

    二次开发photoshop 介绍 (Introduction) Often, when working as web developer, we need to integrate templates ...

  8. 用WEB技术栈开发NATIVE应用(二):WEEX 前端SDK原理详解

    摘要: WEEX依旧采取传统的web开发技术栈进行开发,同时app在终端的运行体验不输native app.其同时解决了开发效率.发版速度以及用户体验三个核心问题.那么WEEX是如何实现的?目前WEE ...

  9. 大华摄像头二次开发-web端实现实时视频监控

    最近客户提需要,需要在现有的系统中集成视频监控功能,摄像头是大华的.而大华又没有关于java的sdk,官网只能下载到c++的demo和dll文件.无奈只能自己在网上找了,最后找到了一些解决办法,把实现 ...

  10. 基于SPSS二次开发的Web SPSS系统

    在以前关于SPSS二次开发文章中留下过自己联系方式,差不多一年的时间,零零散散的和我取得联系的人也有几十位,看来对于SPSS二次开发的需求不少. Web SPSS系统是利用SPSS二次开发技术,使用户 ...

最新文章

  1. android layout background,Android LinearLayout Gradient Background
  2. ESP8266开发笔记
  3. c语言中的两个百分号什么意思,百分号的用法,特别是在两个量词之间的用法,例如50%—70%和50—70%...-百分号-语文-彭都宰同学...
  4. 批量找注入 python3+sqlmap结合
  5. assert函数的作用
  6. VS2019 产品密钥
  7. python解压并另存 .bz2文件的方法
  8. 鸿蒙蕴含的哲理,苏轼最不该被忽视哲理名句:“人生到处知何似,应似飞鸿踏雪泥”...
  9. 如何使用Win10原生的截图工具Snipping Tool?
  10. oracle蓝屏解决方法,win10系统蓝屏怎么办 蓝屏代码0x000007e的3种解决方法
  11. 电学计算机专业英语,电器电子英语词汇(O)
  12. 在线将PDF极速转换为图片
  13. php支付宝封装类,android封装支付宝支付
  14. c语言求正方体的表面积和体积,2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类 container,派...
  15. 基于springboot的员工管理系统整合Mybatis操作
  16. 计算机一级空了一个大题,计算机一级填选空择题及答案.doc
  17. (单纯性和L1 ball)投影梯度法
  18. SAP FICO全解析之-定义国家代码
  19. lepus 监控mysql_Lepus(天兔)监控MySQL部署
  20. 天津计算机比赛,国际传媒学院学生在“‘中科曙光’杯第六届中国大学生计算机设计大赛天津市级赛”中屡创佳绩...

热门文章

  1. [BZOJ1009]GT考试
  2. sap快捷搜索菜单栏
  3. The Python Challenge 闯关笔记
  4. springmvc的运行原理个人见解
  5. STM32串口通信(使用C8T6)
  6. CSS3知识点总结---transitionend
  7. 最近学到一些linq和面向对象的经验分享
  8. sharepoint安装心得-.net与sharepoint安装 sharepoint安装心得_过程(一)
  9. 如何 给给软件开发 添加 代理_如何从“菜鸟码农”变成“一线架构师”?
  10. 剖析Disruptor:为什么会这么快?(一)Ringbuffer的特别之处