自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Cesium开发:左键点击模型效果分析

Cesium的样例中,有一个3D Tiles Feature Picking,鼠标划过模型,会在模型上显示一个选中框,在模型旁边浮现一个名称标签,点击3dtiles中的模型,会高亮显示框,并且弹出模型的详细信息。详细的网址:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=3D Tiles Feature Picking.html&am...

2019-07-31 10:37:54 2400

原创 GIS开发:分享常用的gis算法(C#)

在系统开发中,有时会用到一些常用的空间算法,引用一些类库是可以解决问题,但是有时类库的运行效率比较慢,引用的东西比较多,如果需要的方法不多,可以写一些简单的计算方法。下边分享几个常用的gis计算方法://判断点是否在面里public bool IsPointInPolygon(List<CVector> poly, CVector point) { int i,...

2019-07-30 17:13:53 1732

原创 Skyline开发:开挖分析

在TE开发中,系统有时会要求在不打开地下模式的前提下,查看地下的一些管线、管廊、矿体等模型效果,TE中提供了挖洞的功能,简单来说就是在地形上挖一个洞,使用API直接开发的效果,挖开地下就是一片灰色的效果,如下图:假如地下有模型等效果,就可以进行查看,不过衬托的效果有点差,在这种情况下,可以设置一个深度,创建一个不规则的立方体,给立方体贴上贴图,把下边的范围给包括中,如下图效果:这样看起来的...

2019-07-30 10:19:12 1004

原创 空间数据库系列:PostGIS和qgis的数据连接

PostGIS是目前使用非常广泛的开源数据库Postgresql的空间扩展插件,使用PostGIS插件,可以很方便的在数据库中对空间数据进行组织、管理,同时PostGIS还有很多自带的空间处理、分析函数,能够很容易的在数据库中,完成数据图层的处理,目前很多开源、商业软件,都能支持直接连接带PostGIS空间扩展的Postgresql数据库,对数据库中数据进行编辑、修改等,并且能够直接发布其中的空间...

2019-07-29 11:01:37 5802

原创 空间数据库系列:TE连接postgresql

PostGIS是目前使用非常广泛的开源数据库Postgresql的空间扩展插件,使用PostGIS插件,可以很方便的在数据库中对空间数据进行组织、管理,同时PostGIS还有很多自带的空间处理、分析函数,能够很容易的在数据库中,完成数据图层的处理,目前很多开源、商业软件,都能支持直接连接带PostGIS空间扩展的Postgresql数据库,对数据库中数据进行编辑、修改等,并且能够直接发布其中的空间...

2019-07-29 10:56:12 223

原创 Skyline开发:TE7多球联动开发

在一些系统的开发中,方案对比等功能需要加载多个三维球,并实现三维球的联动效果,skyline的三维开发支持多球一起进行加载,达到效果。具体的功能实现,以BS的开发为例,CS开发中只是控件的加载方式不同:在窗口上加载多个三维控件,每个控件设置的id不同,CLASSID都是相同的,以下是加载了3个地球窗口控件; 在js代码中,定义sgworld对象接口,每个接口需要根据窗口...

2019-07-25 10:29:09 313

原创 OpenXML:C#操作PPT文档

PPT文档,本身就是一个压缩包,使用压缩工具打开一个PPT文件,可以看到里边的文件列表,里边包含xml、图片等文件,如下图:OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。以下代码为打开一个PPT文档,对文档中的一些文字和图片进行替换:Presentatio...

2019-07-25 10:25:39 2226

原创 Skyline开发:TE飞到对象完成事件

在TE的二次开发中,可以选择一个对象,并飞到对象的位置,在其中可以加入一些其他的程序操作,假如想飞到对象完成后,进行一系列的程序操作,就需要在二次开发中定义TE的对象事件。下边以在CS中开发一个飞到对象完成事件为例,具体的代码如下://定义对象的事件_sgworld = new SGWorld66();_sgworld.OnObjectAction += _sgworld_OnObject...

2019-07-23 10:26:52 354

原创 OpenXML:C#读取Excel文档

Excel的文档,本身就是一个压缩包,使用压缩工具打开一个excel文件,可以看到里边的文件列表如下图:里边的文件主要就是一些xml文件和其他的素材OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。下边列举一下,如何使用OpenXML读取一个Excel文档中...

2019-07-23 10:22:32 4976

原创 OpenXML : C#操作word文档

Word文档,本身就是一个压缩包,使用压缩工具打开一个Word文件,可以看到里边的文件列表如下图:OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。以下代码为打开一个word文档://WordprocessingDocument打开一个文档,_filePath...

2019-07-22 21:27:54 4800

原创 Skyline开发:TE二次开发中的画圆

在TE的二次开发中,有时会用到画圆标示一个范围,圆的半径根据鼠标移动而变化,跟直接使用TE画一个圆的效果相同。这需要定义TE二次开发中的鼠标点击等事件,以下是详细的画法代码。 //定义鼠标左键事件 sgworld.OnLButtonUp += sgworld_OnLButtonUp; //定义鼠标右键事件 sgworld.OnRButtonUp += sgworld_OnRButtonU...

2019-07-22 11:11:12 363

原创 Skyline开发:TE二次开发画Polygon

在TE的二次开发中,使用API进行Polygon的动态标绘,在CS程序中,Polyon自相交情况下,程序会抛出异常,而在bs网页的开发中,则不会出现这个错误,不过,CS开发动态画Polygon也有一种解决方式,能保证画的过程中不出现异常,下边分享一下详细的实现代码。定义TE二次开发中的鼠标左键、右键、实时事件自己进行添加,代码中主要是各个事件的详细实现,详细的CS代码如下。//鼠标左键事件 ...

2019-07-22 10:06:34 586

原创 GIS开发:经纬度和立体三维坐标换算

在球面坐标系上,坐标是用经纬度标示,纬线和经线一样是为度量方便而假设出来的辅助线,定义为地球表面某点随地球自转所形成的轨迹。任何一根纬线都是圆形而且两两平行。纬线的长度是赤道的周长乘以纬线的纬度的余弦,所以赤道最长,离赤道越远的纬线,周长越短,到了两极就缩为0。从赤道向北和向南,各分90°,称为北纬和南纬,分别用“N”和“S”表示。在实际的计算中,经纬度一般是不能拿来直接计算的,都需要进行一定...

2019-07-19 10:14:00 2534 1

原创 skyline开发:Cesium加载skylineglobe在线3dtiles

skyline的web无插件版推出后,打开skyline的官网,可以在线观看skyline官方发布的一些三维数据等;网址是:http://skylineglobe.com/sg/TerraExplorerweb/。左侧发布了一些倾斜模型的数据,点击定位,可以查看这些模型的详情;skyline的web无插件版是基于开源的Cesium进行开发的,所以skyline处理的模型格式也是符合Cesiu...

2019-07-17 10:45:14 2883

原创 skyline开发:TE根据坐标系wkt转换坐标

WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换,它的二进制表示方式,亦即WKB(well-known-binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。坐标系也有wkt的表示方法,如wgs 84的wkt如下:GEOGCS[“WGS 84”,DATUM[“WGS_1984”,SPH...

2019-07-16 21:51:29 700

原创 skyline开发:TE弹出窗口和主页面的交互

在te的web开发中,因为普通的div很难浮动在te的三维地球窗口上,即便浮动上去也不稳定的,所以,一般使用te中自带的窗口,弹出一个气泡浮动在te的三维窗口上。te的弹出气泡实现是通过Window下的ShowPopup,ShowPopup中的参数可以使用src链接一个网页。弹出气泡和主页交互有两方面,一个是控制三维球的一些操作,这个通过在弹出的网页中定义一个sgword的object即可实现...

2019-07-16 21:48:37 2691

原创 skyline开发:TE中的矢量图层结构

在系统的开发过程,有时会去操作矢量图层中的对象,比如查询图层中的一个对象进行定位、图层中的对象高亮显示等等,这时就需要对图层进行遍历操作,清楚矢量图层在TE开发中的结构。注意:TE中加载的矢量数据有一个限制,矢量图层中的对象,只有在TE中显示出来,才能搜索的到,所以这会经常导致,TE获得的图层个数,比直接查看源数据中的数据量少。在开发中,可以使用IProjectTree的GetLayer方法来...

2019-07-15 16:43:31 314

原创 GIS开发:分享开源三维模型查看器

open 3D Model Viewer(https://github.com/acgessler/open3mod)是一款开源的三维模型查看器,支持多达40种三维模型格式,是基于开源的open asset import library(assimp)(https://github.com/assimp/assimp)进行开发,软件的体积大小不到10M,可以从网上直接下载到(http://www....

2019-07-12 09:07:48 5446

原创 GIS开发:nginx发布常用数据

nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是稳定、占有内存少,并发能力强。–来自百科在GIS开发中,要发布一些常用的图片、模型文件等数据,以便在网络上使用,通常在skyline中, 配合sfs或者sgs,将这些数据发布在IIS上,其他的java开发中,将数据发布在tomcat上,Cesium的数据...

2019-07-11 15:25:54 2011 3

原创 GIS开发:使用开放API获取数据

现在常用的高德地图、百度地图、腾讯地图等,都有开放的API,个人用户就能申请进行开发,通过生成开发的key,调用这些地图的API服务,当然,个人用户每天的API请求次数是有限,一般对于简单的数据查询还是够用的,通过这种方式,我们还是能根据API累积一定的常用地图数据。高德地图的每天请求数量限制,一般都是开发上千次的请求,当然每次的数据量也是做限制了。举例一个常用的POI搜索的网络服务,可以根...

2019-07-11 09:14:40 3704

原创 GIS开发:DotSpatial修改shp文件属性表

DotSpatial是一个.NET的地理信息开发类库,使用C#语言进行开发,可以在Windows Forms窗口上显示一个二维地图,能够打开shp、格网、影像等数据,进行一些常用的坐标系转换等。DotSpatial的开源项目网址:https://github.com/DotSpatial/DotSpatial在使用C#的CS的系统开发中,DotSpatial是一个比较轻量级、实用的类库,虽然不...

2019-07-10 10:58:09 2671

原创 C#开发:简单应用程序多窗口消息传递

在目前一些桌面端.net系统的应用中,需要多个子系统窗口进行信息交换,对于部署在同一台电脑上的各个子系统,可以通过集成windows系统的消息传递方式进行消息传递,但是假如将各个子系统部署在不同的电脑上,这种实现方式就有一定的局限性,要涉及到网络中的不同电脑进行通信,.net提供了可以建一个小的http服务器,可以绑定计算机的端口进行通信,且提供了异步的实现方式,能实现无阻塞的消息通信。具体代码...

2019-07-09 17:24:44 537

原创 Skyline开发:fly工程矢量图层批量修改

在制作fly的过程中,需要发布网络地址的矢量图层,或者把矢量图层切换到本地地址,TE的打包功能中,并不能将本地地址的矢量图层打包成网络地址,需要手动进行修改,矢量图层数量多的情况下,修改起来还是一个挺大的工作量。在TE二次开发的程序中,可以结合fly工程的遍历方法和矢量图层的连接字符串进行批量修改,减少一个一个修改的工作量。矢量图层的本地数据连接字符串是以下格式:FileName=矢量图层路径...

2019-07-04 15:28:08 301

原创 skyline开发:地图上画饼状图

如何在TE上画一个饼状图,需要调用TE开发的几个API接口,和一些简单的数学算法,效果图如下:具体的实现思路为: 一个圆的角度为360度,首先计算饼状图中的对象有多少个,每个对象所占有的角度有多少,设定饼状图外接圆的半径,外接圆的圆心位置; 根据每一个角度和半径,获取东西向、南北向的移动距离,使用的函数为半径*sin和半径*cos,在根据移动距离和中心点,使用sgworld.Coor...

2019-07-03 16:15:33 376

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除