Skyline开发教程.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Skyline开发教程

Skyline开发教程(1)(转) 2011年08月02日 星期二 上午 10:28 Skyline开发教程(1) Skyline开发教程(1)__三维场景下的矢量数据的属性查询方法和对象闪烁 使用Skyline平台进行三维GIS系统开发,可以在三维场景中加载各种二维矢量数据,有常见的Shp数据,KML数据,还有以WFS形式发布的矢量数据等。这样我们就面临一个新的问题,那就是二维矢量数据在三维场景下的查询。 通常我们把Shp格式的数据导入三维场景中,无论直接导入还是以流的方式导入,都能够进行对象查询。对于线型对象,只要能够捕捉到线对象,就能进行属性查询,而导入的面对象,则要注意对于面的透明度这一属性进行设置,不能为零,否则无法捕捉到面对象。 对于线闪烁和面闪烁则通过改变其线宽,边界颜色,填充颜色和透明度来实现。以下是线闪烁和面闪烁的相关代码,以供学习。 if (tempObj.ObjectType == TerraExplorerX.ObjectTypeCode.OT_POLYLINE) { //保存原有属性 FgColor = tempObj.FgColor; FgAlpha = tempObj.FgAlpha; LineWidth = tempObj.LineWidth; tempObj.LineWidth = LineWidth + 3; tempObj.FgColor = 255; tempObj.FgAlpha = 1; } if (tempObj.ObjectType == TerraExplorerX.ObjectTypeCode.OT_POLYGON) { //保存原有属性 FgColor = tempObj.FgColor; FgAlpha = tempObj.FgAlpha; LineWidth = tempObj.LineWidth; BgColor = tempObj.BgColor; BgAlpha = tempObj.BgAlpha; tempObj.LineWidth = LineWidth + 3; tempObj.BgColor = 65535; tempObj.BgAlpha = 0.36; tempObj.FgColor = 255; tempObj.FgAlpha = 1; } private void timer1_Tick(object sender, EventArgs e) { if (bVisable) { //隐藏对象 tempObj.Visible = 0; } else { //显示对象 tempObj.Visible = 1; } bVisable = !bVisable; } Skyline开发教程(3) 2011年08月02日 星期二 上午 10:30 Skyline开发教程(3) 根据道路中心线矢量图层在三维场景中自动铺路 对于三维场景中的道路的铺设,大多使用TerraExplorer Pro中提供的工具进行铺设,但是也要一条一条的在三维场景中画。 如果我们有道路中心线矢量图层,那么这一切将变得非常简单,我们根据道路中心线图层可以自动的在三维场景中铺路。 整个过程基本上可以分为三步: 第一步:把道理中心线图层导入三维场景中,检测中心线图层是否与地形相匹配,对于有问题的线进行修改,并导出新的道路中心线图层。 第二步:使用道路导入工具自动在三维场景中生成道路面。下面我会重点讲怎么根据道路中心线生成道路面,并附带样例代码。 第三步:把道路的道路面保存成Shp面图层,最后以流的方式导入道路面图层。关于道路面图层的保存可以参考Skyline开发(2)中的讲解。 链接地址:/bbs/viewthread.php?tid=7892extra=page%3D1 这里开始讲根据道路中心线生成三维场景中的道路面的方法,我们使用了Skyline的接口和MapObject的接口进行开发。 首先对道路中心线进行解析,得到中心线的坐标串和属性(如道路等级,路宽等),再根据道路中心线的空间信息把中心线扩展成具有一定宽度的面, 根据属性信息对道路的宽度和道路纹理进行赋值,然后在三维场景中生成道路。当然对于道路交叉口等复杂路段我们还需要手动调整。 下面提供相关样例代码,其中根据道路中心线生成面的方法稍微复杂,其实也就是根据线生成缓冲区的过程,其余都很容易看懂。 虽然MapObjct提供了缓冲计算的接口,可以根据线生产面,但是在线的两端也做了半圆缓冲,自然不符合生成三维场景中道路的要求, 所以我们使用Skyline的相关接口进行缓冲计算。 //渲染道路 private void btnBuildRoad_Click(object sender, EventArgs e) { MapLa

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档