Skyline WEB端开发2——添加一个定位点、文本标签

Skyline 添加定位点

sgworld.Creator.CreatePosition
CreatePosition(
X,                //兴趣点的东西方向坐标,即经度
Y,                //兴趣点的南北方向坐标,即纬度
Altitude,        //兴趣点的高程,即高度
AltitudeType,    /*
               * 一个枚举值,定义了高程类型。
               * 0代表定位点在地面以上指定高度。
               * 1代表定位点在海平面的高度。
               * 2代表在地形表面创建定位点。
               * 3代表定位点在基于椭球基准面的地形数据库指定高度位置。
               * 4代表以一定高度创建在 3DML 之上
               * 注:1 和 2 的值应用于二维的形状和多边形。4 只适用于图片和文本标签。
               * */
Yaw,            //视点和兴趣点的偏移角度。范围 0°到 360°,0=北,90=东,180=南,270=西
Pitch,            //视点和兴趣点的俯仰角度。范围-90°到+90°,0=水平,+90=自下到上垂直,-90=自上到下垂直。
Roll,            //视点和兴趣点的翻滚角度。范围-90°到+90°,0=水平,+90=完全向右翻滚,-90=完全向左翻滚。
Distance        //距离点坐标(X,Y,height)的距离,点必须在视线范围内。
);

Skyline 添加文本标签

sgworld.Creator.CreateLabel
CreateLabel(
Position,        //表示点的位置和方向
Text,            //需要显示的文本
ImageFileName,    //显示在标签中的图像文件的完整路径或 URL。如果给参数传递 Null 则只创建文本标签。
LabelStyle,        /* 标签样式(例如,颜色,字体和可视距离属性)
               * Bold 如果这个参数设置为 TRUE,字体样式设置为粗体。
               * FontName 字体的名称。
               * FontSize 以像素为单位的字体大小。文本的大小尺寸范围从 8 至 72。
               * FrameFileName 一个全路径名或一个框架文件的 URL,为标签边界使用的文件。
               * Italic 如果这个参数设置为 TRUE,字体样式设置为斜体。
               * Underline 如果是 TRUE,字体样式设置下划线。
               * LimitScreenSize 如果这个参数设置为 TRUE,当摄像机靠近的时候,标签保持其原始大小。
               * LineToGround 如果这个参数设置为 true,一条线从支点向下延伸。
               * LockMode 该文本标签的位置参数,自动调整面对镜头并确定被锁定的位置组字段值。
               * MaxImageSize 图像的最大尺寸。
               * MaxViewingHeight 确定该标签可见的最大高度。
               * MinViewingHeight 确定的最低可见高度。飞行时比该值低,标签消失。
               * MultilineJustification 如果有多行文本,此选项决定文本对齐方式。可以有以下值之一:"left","rihgt"或"center"。(默认:"center")。
               * PivotAlignment 决定了标签相对于其支点对齐:Top, Left; Top, Center; Top, Right; Center, Left; Center, Center; Center, Right; Bottom, Left; Bottom, Center; Bottom, Right。
               * Scale 标签在每个像素的尺寸,最大字符高度为文字大小的倍数值。
               * ShowTextBehavior 确定的标签中包含的文字图像和文字能否始终显示或当鼠标光标悬停在标签上面才会显示。0代表始终显示标签的文本。1代表仅当鼠标悬停在标签的图标显示标签的文本。
               * SmallestVisibleSize 获取和设置文字的最小高度。以像素为单位。当摄像机靠近时,标签消失。
               * TextAlignment 决定了有关的背景文本的水平和垂直对齐方式。该文本的有关背景图像的水平对齐有以下值之一:Left, TopLeft, TopRight, Top, Right, RightBottom, Bottom, BottomLeft (默认: Bottom).
               * TextOnImage 如果为 true,则文本显示在标签中的图像之上。否则,标签扩大使文字围绕图像显示。如果此标签集没有图像,则此参数被忽略。
               */
GroupID,        /* 标签在工程树中的位置,如果它被设置为空字符串,对象在根目录下创建。 也可以通过下列方法之一,来取得的 GroupID:
               * 1、使用 IProjectTree66.CreateGroup 创建组。
               * 2、如果你知道这个名字,使用 IProjectTree66.FindItem 查找组。
               * 3、使用 IProjectTree66 中的方法遍历组,例如 GetNextItem, 直到找到想要的组的 ID。
               */
Description        //标签在项目树中的名称,如果这个参数为一个空字符串,TerraExplorer 自动分配一个唯一的名称。
)
下面是一个简单的方法示例可以进行参考
//传入点的经度、维度、高度
function DrawLabel(x, y, z) {
    try {
        //创建点
        var labelPos = sgworld.Creator.CreatePosition(x, y, z, 2);

        var cLabelStyle = sgworld.Creator.CreateLabelStyle();

        cLabelStyle.TextOnImage = false; //设置文本是否显示在图像上。设置true(字在图上),设置false(字在图下)
        cLabelStyle.Bold = true; //设置粗体
        //                cLabelStyle.LineToGroundType = 1;//无此参数
        cLabelStyle.MultilineJustification = "center"; //如果有多行文字的话,确定文本对齐方式
        cLabelStyle.TextAlignment = "Bottom"; //决定了有关的背景文本的水平和垂直对齐。
        cLabelStyle.MaxViewingHeight = 800; //最大高度,如果超过此高度后,该点将隐藏

        var cLabelPath = "F:\\myself\\images\\green_bubble.png"; //图片路径
        var label1 = sgworld.Creator.CreateLabel(labelPos, "guanxin", cLabelPath, cLabelStyle, sgworld.ProjectTree.FindItem("新建组 ##575097"), "green_bubble");

        sgworld.Navigate.FlyTo(label1);

        labelPos.X += 0.001;

        labelPos.Altitude += 0; //添加点的高度

        var cLabelPath2 = "F:\\myself\\images\\grey_bubble.png"; //图片路径
        var label2 = sgworld.Creator.CreateLabel(labelPos, "北京科技有限公司.\r\n西安办事处\r\n", cLabelPath2, cLabelStyle, sgworld.ProjectTree.FindItem("新建组 ##575097"), "grey_bubble");
    } catch(e) {
        alert("Unexpected error: " + e.description);
    }
}

原文地址:https://www.cnblogs.com/517chen/p/11168665.html

时间: 2024-08-10 02:20:06

Skyline WEB端开发2——添加一个定位点、文本标签的相关文章

Skyline WEB端开发4——添加事件

skyline中有很多自带的事件可以进行调用,今天给大家介绍几种常用的事件 一.Open()  打开指定工程 //初始化加载TerraExplorer工程 $(window).load(function() { try { var flyPath = "C:\\Users\\admin\\Desktop\\SkyglobeLB.fly"; sgworld.AttachEvent("OnLoadFinished", OnProjectLoadFinished); sg

Skyline Web 端数据浏览性能优化

三维数据的效率一直是个瓶颈,特别是在Web端浏览一直是个问题,在IE内存限制1G的条件下,对于三维数据动不动几十G的数据量,这1G显得多么微不足道.虽然现在三维平台都是分级加载,或者在程序中采用数据分不同片区加载来降低一次性加载的模型数据,但是在浏览器中浏览三维数据崩溃问题仍然一直存在.最近在维护一个老的Skyline的项目,客户提出了在看二维数据的同时也可以看三维数据,需求很简单,实现也很容易,唯一的问题是浏览效率,能不能浏览?浏览效率怎么样?而且政府单位的电脑配置都是很一般.毕竟也做了这么多

百度LBS地图的Web端开发实战

百度地图API以开放形式提供给开发者,完全免费,可以直接使用,无需商业授权. 这次教程我们主要讲解百度地图的地图展示.本地检索.逆/地理编码.覆盖物.城市列表等关键功能. 0.效果图展示 介绍一下: 点击地理位置的tab展示百度地图,如果店铺设置了地理位置,那么直接定位:否则,通过IP进行默认地址定位(这一点有待改善,我处在洛阳,但根据IP定位到了郑州). 通过城市列表和本地检索,可以直接定位到想要的地址,找到坐标后,会在地图上有一个红色位置的marker. 右键marker,可以进行ajax请

移动设备web端开发笔记

Bootstrap 3 一.采用Html5文档类型<!DOCTYPE html> <html> .... </html> 二.为了让 Bootstrap 开发的网站对移动设备友好,确保适当的绘制和触屏缩放,需要在网页的 head 之中添加 viewport meta 标签,如下所示: <meta name="viewport" content="width=device-width, initial-scale=1.0"&g

基于webpack和vue.js搭建的H5端框架(其实主要用于Hybrid开发H5端框架,但是依然能够作为纯web端使用)

人类的发展得益于对追求不断的提升,在能活着的基础上是否要活得潇洒一点,技术的发展亦如是.在公司作为一个最最最最最最最底层的搬砖码农,经历了两个版本的铸(zhe)炼(mo)之后,我痛下决心今后一定要:…………..一定要和产品惺(shi)惺(bu)相(liang)惜(li). 开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实践的过程中要去不断访问的5

跟我一起学WCF(3)——利用Web Services开发分布式应用

一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 Web Services 概述 Web Services是支持客户端与服务器通过网络互操作的一种软件系统,是一组可以通过网络调用的应用程序API.在Web Services中主要到SOAP/UDDI/WSDL这三个核心概念,下面分别介绍下这三个概念的定义. SOAP:SOAP(Simple Object

利用Web Services开发分布式应用

一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 Web Services 概述 Web Services是支持客户端与服务器通过网络互操作的一种软件系统,是一组可以通过网络调用的应用程序API.在Web Services中主要到SOAP/UDDI/WSDL这三个核心概念,下面分别介绍下这三个概念的定义. SOAP:SOAP(Simple Object

移动端开发流程

和PC端网站的设计和开发相比,移动客户端的开发工作,对绝大多数人来说,绝对是一个崭新的行当. 那么,当我们每天在iphone上,在各种安卓在各种pad上习以为常的刷着微博看着网文切着西瓜找着你妹的时候,当一大波人信心满怀的开始步入这个看似熟悉,或者说"简单"的工作中后,突然发现,悲催,完全不是那么回事嘛! 相信很大一部分产品或者设计或者开发人员是从之前的传统互联网"出家"过来的,当然,这包括我,还有身边很多很多人.总之,这是一个坑,因为,APP,这个"看上

Web前端开发工程师养成计划【转载】

Web前端开发工程师养成计划(入门篇) 最原始的忠告:这个世界上有想法的人很多,但是有想法又能实现它的人太少! 首先要感谢伟大的Web2.0概念.产品概念.用户体验概念.jQuery插件,是它们在中国日渐成熟才解放了一直以来姥姥不疼舅舅不爱的前端开发工程师们. 有没有发现从09年下半年到现在全中国的互联网公司都在招聘前端开发工程师?如果你注意到了,那么恭喜你,你已经拥有那么一点点预测互联网职场动向的能力. 可能令你感到遗憾的是你从没从事过前端开发工作,不过没关系,只要你肯努力,一切都是可以学会的