文档章节

Skyline Web 二次开发- 5.Geometirc

华山猛男
 华山猛男
发布于 2017/05/23 15:55
字数 573
阅读 58
收藏 0

    构建多边形和圆形。

注意事项

注意数据的组织方式。

需求分解

  1. 创建点位数据
  2. 构建多边形和圆形并显示

方法说明

  • SGWorld66.Creator.GeometryCreator.CreateGeometryFromWKT(buffer);
  • 创建几何图形数据
  • SGWorld66.Creator.CreatePolygon(Geometry,LineColor,FillColor,AltitudeType,GroupID,Description);
  • 创建多边形
  • SGWorld66.Creator.CreateCircle(Position,Radius,LineColor,FillColor,GroupID,Description);
  • 创建圆形
  • SGWorld66.ProjectTree.SetVisibility(ID,bShow);
  • 设置对象是否可见

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/xierdun.FLY";
	        //打开工程
	        SGWorld66.Project.Open(flyPath);
	        
	        //构建不规则多边形
	        var pointsPolygon = SGWorld66.Creator.GeometryCreator.CreateGeometryFromWKT("POLYGON((-114.03822 41.99547,-111.04795 41.99626,-111.05028 40.99663,-109.04763 40.99847,-109.04782 36.99664,-114.04313 36.99656,-114.03822 41.99547))");
            var polygon = SGWorld66.Creator.CreatePolygon(pointsPolygon, "#ff0000", SGWorld66.Creator.CreateColor(0, 255, 255, 40), 2, "", "polygon"); //
            polygon.LineStyle.Width = 5000; // 5000m (5km)
            
			//构建长方形
            var pointsRectangle = SGWorld66.Creator.GeometryCreator.CreateGeometryFromWKT("POLYGON((-111.05265 44.99576,-104.05934 44.99734,-104.05120 41.00322,-111.05028 40.99663,-111.05265 44.99576))");
            var rectangle = SGWorld66.Creator.CreatePolygon(pointsRectangle, SGWorld66.Creator.CreateColor(255, 255, 0, 10), null,2,"", "rectangle");
            rectangle.LineStyle.Width = 20000; // 20000m (20km)
            rectangle.Position.Distance = 1600000;
            
            //构建圆形
            var circle = SGWorld66.Creator.CreateCircle(SGWorld66.Creator.CreatePosition(-114.03822,41.99547,0,2),  // Pivot
                    100000.0,                                                     // Radius (1000m)
                    SGWorld66.Creator.CreateColor(0, 0, 0, 0),                    // Outline color (in this sample, transparent/no outline)
                    SGWorld66.Creator.CreateColor(200, 50, 50, 128),               // Fill color
                    "",
                    "circle"
                    );
			circle.Position.Distance = 3000;
            
            //工程目录树中隐藏长方形和圆形
            SGWorld66.ProjectTree.SetVisibility(rectangle.ID,false);
            SGWorld66.ProjectTree.SetVisibility(circle.ID,false);
	    } catch (e) {
	        alert("Error: " + e.description);
	    }
	}
	
	function FlyToProject(){
		//获取工程目录树里面图层并转换回Presentation对象,该对象自动转换,详见API文档
		var polygon = SGWorld66.ProjectTree.GetObject(SGWorld66.ProjectTree.FindItem("polygon"));
		SGWorld66.Navigate.FlyTo(polygon);
		//7秒后显示长方形
		setTimeout(function(){SGWorld66.ProjectTree.SetVisibility(SGWorld66.ProjectTree.GetObject(SGWorld66.ProjectTree.FindItem("rectangle")).ID,true);},7000);
		//8秒后显示长方形
		setTimeout(function(){SGWorld66.ProjectTree.SetVisibility(SGWorld66.ProjectTree.GetObject(SGWorld66.ProjectTree.FindItem("circle")).ID,true);},8000);
	} 
	
	</script>
	<style>
  		.btn{
	  		border: none;
			display: inline-block;
			outline: 0;
			padding: 6px 16px;
			margin-bottom: 10px;
			vertical-align: middle;
			overflow: hidden;
			text-decoration: none;
			color: #fff;
			background-color: #3385ff;
			text-align: center;
			transition: .2s ease-out;
			cursor: pointer;
			white-space: nowrap;
			width: 100%;
			margin-top: 5px;
  		}
	</style>
	
	<body onload = "Init();" style="background-color: black;padding:0; margin:0;overflow: hidden;">
		<div style="position: absolute;width: 80%;height: 100%;left: 0%;">
			<!--定义一个TerraExplorer 3D窗口对象-->
			<object id="TE" classid="clsid:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width: 100%;height: 100%;padding:0; margin:0;"></object>
		</div>
		<div style=" position: absolute;width: 18%;height: 99%;left: 81%;">
			<!--定义一个TerraExplorer 信息窗口对象-->
			<object id="TEInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" style="width: 100%;height: 50%;"></object>
			<!--定义TerraExplorer对象SGWorld66-->
			<object id="SGWorld66" classid="CLSID:3a4f9199-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0;"></object>
			<div>
				<input id="Button1" value="示例按钮-编辑事件" onclick="FlyToProject()" type="button" class="btn"/>
			</div>
		</div>
	</body>
</html>

效果图

参考案例

  • http://www.cnblogs.com/yitianhe/archive/2012/09/21/2696563.html

本文转载自:http://www.cnblogs.com/yitianhe/archive/2012/09/21/2696563.html

华山猛男
粉丝 10
博文 179
码字总数 84845
作品 0
海口
程序员
私信 提问
skyline6:二次开发web工程调用网络fly文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/79241376 1.web工程调用网络fly文件 (1)新建一个空的web工程,并在工程中新建一个...

bitree1
2018/02/02
0
0
北京东方道迩集团诚聘软件开发项目经理

软件开发项目经理 北京 岗位要求: 1、计算机软件、地理信息系统相关专业; 2、熟悉软件开发流程,具有GIS项目实施和管理经验,一年以上的GIS软件应用程序开发经验; 3、熟悉Asp.net开发,熟...

夏志宏
2010/01/12
326
0
实时异常检测系统--Skyline

Skyline 是实时异常检测系统,构建目的是被动监控几百到几千个度量标准,不需要一个个配置 模型/阈值,可以同时使用 Nagios。 Skyline 设计主要是用在需要持续监控的大量高清晰度的时间序列。...

叶秀兰
2015/08/05
3.1K
0
【Leetcode】807. Max Increase to Keep City Skyline

Description In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located there. We are allowed to increase the height of any number of buildi......

xiagnming
2018/07/27
0
0
12 个基于 Rails 框架开发的 CMS 系统

Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,R...

红薯
2011/11/02
4.4K
6

没有更多内容

加载失败,请刷新页面

加载更多

Java 判断实体类属性是否为空工具类

import org.apache.commons.lang.StringUtils;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * 判断对象是否为空 * @param obj * @return */pub......

骑羊放狼灬
15分钟前
0
0
基于nginx搭建RTMP服务器

安装nginx 下载ngnix源码 git clone https://github.com/nginx/nginx.gitgit clone https://github.com/arut/nginx-rtmp-module.git 编译安装 ./configure --add-module=../nginx-rtmp-mod......

cloudjx
29分钟前
0
0
从 Spark 到 Kubernetes — MaxCompute 的云原生开源生态实践之路

2019年5月14日,喜提浙江省科学技术进步一等奖的 MaxCompute 是阿里巴巴自研的 EB 级大数据计算平台。该平台依托阿里云飞天基础架构,是阿里巴巴在10年前做飞天系统的三大件之分布式计算部分...

迷你芊宝宝
31分钟前
0
0
5个Vue.js项目的模板

开发人员查看使用SPA,Webpack,身份验证,GraphQL,文档和测试的Vue开发人员的资源。 你准备开始一个重要的Vue项目吗?为了确保从坚实的基础开始,您可以使用模板(也就是样板,骨架,起动器...

写字的男孩儿
32分钟前
0
0
epoll 的本质是什么?

从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是...

编辑部的故事
36分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部