
GIS学习
文章平均质量分 66
WaqarLeaver
这个作者很懒,什么都没留下…
展开
-
Cesium和Three融合之第一人称加模拟太阳光加模型加载
Cesium和Three融合场景的一次尝试原创 2022-08-12 17:31:41 · 1191 阅读 · 10 评论 -
cesium3dtiles自定义shader的实现之一
cesium自定义的shader实现改变3dtiles显示,感觉还行吧。但纯粹是误打误撞的,瞎调的参数,shader真是个神奇的东东啊。原创 2021-11-19 15:21:17 · 5054 阅读 · 4 评论 -
Cesium开源water材质和粒子效果示例代码研究
文章目录关于本文的说明水特效水特效示例代码水特效属性设置说明水特效实际应用代码火特效火特效实现代码位置的设置重力(Gravity)的控制粒子喷射间歇的强度的控制其他属性设置总结感想关于本文的说明 最近看到国内一位cesium大牛的博客,讲材质material(材质)的,于是对照源码看了下,发现很有研究的意义,首先,源码的项目搭建用的是dojo,所有的样式业务绘制前端都是良好分离,关键是不存在多份拷贝,方便调试,相较于傻瓜式且过度模块化封装的vue而言,这点好很多,不过这些不是本文的重点,本文涉及到的水原创 2021-05-30 07:50:38 · 5418 阅读 · 1 评论 -
《3D Engine Design for Virtual Globes》3.5.1节 学习笔记
opengl标准参照网页:https://www.khronos.org/registry/OpenGL-Refpages/gl4/ 书中3.5.1节中记录了VertexBuffers的一些实现。在C#的示例代码OpenGlobe中以VertexBuffer类存在,抽象类,书中列举了一张图对比VertexBuffer和IndexBuffer: 都是从SystemMemory中读取或写入原始二进制数据,区别是前者没有Datatype,后者有,在示例代码中,datatype有两种UnsignedS原创 2021-04-26 08:29:31 · 489 阅读 · 0 评论 -
cesium加载超图iserver发布的map对其中子layer实现单独控制显隐的实现
使用超图的iserver发布了多个map图层,每个map中包括多个layer子图层,然后我们尝试使用iClient For WebGL去加载这些图层,于是使用SuperMapImageryProvider去加载单独的map,需求是既能够单独控制map的显隐,也能够单独控制layer的显隐。 单独控制map显隐的方法是加载完成后设置图层的show属性即可,立即生效。然而单独控制其中layer的显隐,试了试其中的setLayerStatusParameters方法,发现虽然能够实现,然而却不能立即生效原创 2021-04-22 16:25:25 · 1498 阅读 · 2 评论 -
cesium莫名其妙报render normalize错误问题解决
这又是一次依靠直觉解决bug的经历,由于不会吹牛皮,所以一直从事一线开发,bug排查,扫坑工作,名副其实的搬砖一枚,哈哈,虽然刚开始很累,说出来也没觉得高大上,感觉技术也没什么提升,但是正是由于没多少人愿意做,反而有个自由自在没多少人指手划脚的环境,时间久了,倒是内心乐意起来,日积月累,竟然形成了一种排查bug的直觉,或者说是第六感吧,已经多次从中受益,起到事半功倍的效果。本文提到的bug即为其中之一,错误如下图所示: 从表面上来看这是一个参数错误带来normalize(归一化)操作无法进行下去的原创 2020-08-18 11:59:18 · 4063 阅读 · 0 评论 -
openlayer加载本地kml的方法
openlayer官网上有kml加载显示的方法:openlayer官网加载kml示例只是其中url是相对前端服务器根目录路径:然而开发过程中出现需要加载本地文件的需求,本来是想通过上传ftp曲线救国,但是考虑到现在很多浏览器放弃了对ftp的支持,故而放弃ftp思路,决定直接选择本地kml文件加载。 由于直接使用file://协议会出现跨域问题,所以使用js的fileReader方式读取...原创 2020-04-14 16:23:51 · 2826 阅读 · 0 评论 -
openlayer加载wfs图层的地址和坐标系说明
openlayer加载wfs图层的地址说明如果我们把wfs图层发布在geoserver上,那么大多数情况下会生成一个发布地址:http://ip:port/geoserver/工作区名称/ows?service=WFS…openlayer加载时后面也要填补上,这里对后面填补的内容说明一下:http://ip:port/geoserver/工作区名称/ows?service=WFS&am...原创 2020-02-21 11:05:00 · 1325 阅读 · 0 评论 -
将geoserver从tomcat发布移到使用其原始安装目录发布的操作步骤记录
以前在服务器上部署geoserver,都是先安装然后从其安装目录下拷贝webapp内容放到tomcat目录下的webapp文件夹中,最近服务器上对应盘掉了恢复不过来,掉的盘正好时tomcat目录所在盘,要是搁在以前的做法是将geoserver重新安装一遍然后重复以上步骤,但问题是好多图层都得重新发布,虽然已经备份了图层和相关style文件,但是总得一个个配置,着实麻烦,后来一想,既然原始geo...原创 2019-12-23 11:15:53 · 321 阅读 · 0 评论 -
GeoServer Style配置☞为点图层设置图标并根据属性过滤设置其多个最大最小比例尺范围等级
文章目录SLD整体介绍简介配置参考自动化配置工具及其局限性为点图层设置图标根据图层其中一个属性过滤设置多个比例尺范围SLD整体介绍简介 ** SLD是一种标记语言,全称Styled Layer Descriptor,也就是图层样式描述(不好意思,翻译水平有限,看懂就行了),它是一种基于XML的标记语言,GeoServer中的样式支持SLD。**配置参考 geoserver官网上有关...原创 2019-11-14 13:35:11 · 2951 阅读 · 1 评论 -
Cesium聚簇实现-kdbush类实现
上一篇讲了kdbush实现原理,本篇看下kdbush源码,了解其算法具体实现。kdbush是一个开源js库,github地址:https://github.com/mourner/kdbush/开发者除了开发了该库,还开发了另外几个空间搜索库,包括rbush,rbush-knn,geokdbush,相关的原理说明请参考:http://www.sohu.com/a/137533865_64276...原创 2019-09-04 08:45:44 · 3499 阅读 · 0 评论 -
Cesium聚簇实现-kdbush原理
Cesium聚簇实现-kdbush源码剖析文章目录问题说明KDbush库的分块重排序算法说明KDbush库的查找范围点算法说明矩形框范围查找圆形范围查找 上一篇文章通过调试发现Cesium实现点聚簇过程中一个bug,从中猜测其实现聚簇核心代码在kdbush类中,本文展开kdbush类查看它是如何实现点聚簇效果的。问题说明 假设二维平面中有10个点,分别为ABCDEFGHIJ,如下图所示...原创 2019-08-25 19:05:22 · 3227 阅读 · 0 评论 -
Cesium billboard image选择svg还是png
Cesium billboard image选择svg还是png建议选择png,原因是svg的width和height单位不一定是px,而png的width、height单位任何情况下均为px,容易适配虽然svg也能正常加载图标,但是当create entity的调用者不同时,创建出来的svg大小就不一样了,这样非常不利于程序对显示结果的完全控制。...原创 2019-08-14 18:02:10 · 2687 阅读 · 0 评论 -
Cesium巨坑之当聚簇遇上billboard
Cesium自带了聚簇对象,对于点实体,允许开发者仅仅定义聚簇的一些基本属性则自动完成点聚簇并显示聚合的点个数,在cesium的官方示例沙盘中有聚簇效果:所以在项目中使用这个特性加载数量有限的实体,但是在加载过程中发现一个严重问题,若原始数据有它自己的billboard属性,并且cluster也有它自己的billboard属性,它们各自不相同,当第一次添加完实体后,所有的实体entity并不会...原创 2019-08-14 18:01:42 · 12823 阅读 · 13 评论 -
如何通过geoserver发布包含多个不同比例尺下显示图层的wms服务并通过cesium加载
本文主要记录通过geoserver发布包含多个图层的wms服务-其中每个图层有其显示比例尺范围,且数据源是从postgis数据库中读出来,方便动态变化,并且由cesium加载正确显示的过程,其间涉及多个易入坑,有些操作还需要单独上网查资料,所以在这里统一记录下来,方便日后查阅。最终达到的效果:如上图所示,其中第二张和第三张图片显示两个图层,一个图层显示红色十字架样式的点(第二张),一个图...原创 2019-08-02 08:35:53 · 2107 阅读 · 0 评论 -
GeoServer发布kml,geojson默认展示不完整问题解决
使用Geoserver发布的矢量数据可以用kml或者geojson方式读取,其中kml是默认直接下载成文件的,geojson可以从浏览器端打开页面显示,但是他们有个共同的问题,默认只显示50条记录,对于我们实际应用来说,这个默认的数量是远远不够的,那么如何让它显示出完整的值呢?其实只要在地址栏修改一个参数就完了,例如如下获取geojson的地址:http://localhost:8080/ge...原创 2019-07-31 16:32:23 · 6018 阅读 · 9 评论 -
通用的Cesium自动调整倾斜模型高度贴合地形的方法
通用的Cesium自动调整倾斜模型高度贴合地形的方法倾斜模型自带地形起伏,该地形起伏的精度与测量精度有关,精度不在本文讨论范围内,本文讨论的是,如何在Cesium加载倾斜数据时,自动调整其变换矩阵,使其更加贴近真实地表。一般情况下,若不调整,倾斜数据要么整体悬在上空,要么整体下陷到地里,所以我们要找到一个高度作为调整的高度,又由于Cesium使用的是笛卡尔坐标系,矩阵变换也使用该坐标系,所以不...原创 2019-07-04 14:11:24 · 11787 阅读 · 21 评论 -
基于DEM模拟淹没区域随时间推演的实现研究
最近被逼着实现模拟闸口泄洪以后对下游淹没范围的影响程序,要求体现随着时间的推移,淹没区域发生变化的效果。于是自己琢磨了这个算法,因为不是水利水文相关专业出身,所以此处没有考虑到水汽蒸发、土壤、植被、岩石等要素,从地形一个因素上进行考虑,引入数字高程模型作为计算依据,该算法还存在很多疏漏之处,欢迎评论指正。基本思路是将大坝地址作为初始点,不断向周围8领域扩散,搜索能够被淹没的像素点,标记被淹没。...原创 2018-07-19 17:28:19 · 5646 阅读 · 12 评论 -
如何使用ContextCapture将无人机影像生成SLPK
如何使用ContextCapture将无人机影像生成SLPK 3 分享 2018-03-19 如何使用ContextCapture将无人机影像生成SLPK在工作中经常建议用户,如果希望将生成的三维模型用于ArcGIS产品线,建议在倾斜摄影建模软件导出时直接选择Esri I3S标准的数据格式SLPK,这样可以直接加载至pro中发布服务,避免格式转换。那么,如何使用ContextCa...转载 2018-08-10 17:27:10 · 3374 阅读 · 0 评论 -
ArcGisPro如何加载Lindar点云数据
本文主要讲述如何利用ArcGisPro加载点云数据并且调整其样式。一、准备数据 Arcgispro可以加载.las格式的点云数据,其中存储了每个点的x\y\z三维坐标,我们首先需要获取到las数据,然后拷贝到本机或者计算机可以访问的存储空间中。 创建一个新的工程,然后点击插入-新建地图-新建场景,创建一个三维场景: 点击地图-添加数据-数据,在调出的文件选择对话框中选择加载进来的点云...原创 2018-08-13 14:20:16 · 8072 阅读 · 7 评论 -
ArcgisPro使用小结-高程数据加载验证
使用ArcGisPro加载dem的grd数据,如何看到是不是加载成功呢? 在场景中右击点击属性,调开场景属性对话框: 在高程表面中勾选:相对于场景的光照未知维表面创建阴影: 这样,我们就可以看到高程加载后表面的高低起伏啦: 还有无论是加载还是浏览dem、dom、要素矢量数据,只要看到右下角的刷新按钮在转,那么代表还没刷新完,最好等其不转后再看才是最终成果: ...原创 2018-08-20 15:08:56 · 1539 阅读 · 0 评论 -
ArcMap栅格数据显示调整
当我们用ArcMap加载值类型的栅格数据,比如tif格式的高程数据时,默认的加载方式有时会让人看不清楚每个栅格点值的区别,在平原中这种现象尤其明显: 例如上图所示为我国东南丘陵地区一处高程tif默认加载显示,图中黑色代表高程低的地方,白色代表高程高的地方,如果我们将图中红色方框区域放大,就会看到一片黑色: 这样不利于我们对图像精细分析。我们需要修改其显示属性,将高低值范围设定在当前显示...原创 2018-08-21 14:55:08 · 9773 阅读 · 2 评论 -
在ArcgisPortal上发布dem和dom并使用webscene浏览叠加场景步骤说明
本文讲述如何在ArcgisPotal上发布dem和dom并使用webscene浏览叠加场景。原创 2018-09-05 10:37:17 · 4288 阅读 · 0 评论 -
ArcGIS发布倾斜
经过为期两周的努力,踩了无数个坑,终于走出一条路,此刻我的心情是欣喜的,在程序批处理的等待过程中,本人开始整理整个过程,写成文档,希望能够帮助到更多像我一样在发布mesh数据中苦苦挣扎和彷徨的人。本文讲述如何使用ArcGISPro发布无人机倾斜航拍生成的三维场景并在ArcGISPortal中浏览。网上有几篇文章介绍步骤,这也是本人进行这项工作的主要指导思路:文章入口总体来讲,理论上有两条路...原创 2018-09-28 08:57:14 · 3423 阅读 · 4 评论 -
ArcGIS发布三维数据提示 场景服务缺少根节点的解决
问题类似:https://blog.youkuaiyun.com/weixin_40403995/article/details/82807055解决方法如上需要注意的点是需要使用arcgismanager登陆发布服务所在的电脑,如果那台电脑是win10系统,根本无需创建对应的用户,对应电脑上右击我的电脑-管理,找到本地用户和组-用户,在右侧的用户列表中找到arcgismanager这个用户,右击该用户...原创 2018-09-30 14:38:51 · 2527 阅读 · 0 评论 -
ArcGISPortal+DataStore+Server经验
十一长假公司装修,服务器断电移动,十一之后来上班,发现arcgis环境彻底挂掉,先是之前能发布的bim面数据无法发布,然后重新装了datastore,仍然无法发布,再一看原来已发布的图层全都error,一个都打不开,接着噩耗传来,服务器的一个盘没有连上电脑,而那个盘就是datasotore和server存放数据的盘,等该盘重新连上电脑后,问题依旧,再次重装datastore,无果,中间出现很多问题...原创 2018-10-16 09:57:06 · 1975 阅读 · 0 评论 -
ArcGIS在wgs4坐标系下创建线要素跨180度经线会绕地球一周问题
虽然像标题那样的情况平时出现比较少,但有时还是会遇见,这主要是坐标系问题,wgs84坐标系东经180的横坐标是180,西经180的横坐标是-180,从数学上来讲确实从180到-180要绕地球一周,所以解决这个问题的方法就是转坐标系,转成WGS_1984_UTM_Zone_60N投影坐标系,它就是跨日界线的投影地带。如果是创建点,直接将arcmap的layers属性设置为WGS_1984_UTM_...原创 2018-10-25 13:24:36 · 2015 阅读 · 2 评论 -
地图绕当前视点的中心点旋转360度的实现
本文主要介绍实现地图绕当前视点中心旋转一周的实现,由于计算方法全部自己封装,不依赖平台API,所以完全可以应用到其他语言,只要按照对应的语法规则更改即可。本来想的是用arcgisapi for js API接口直接调用,但是找一圈没找到,只有Sceneview的goto中参数可以传入viewpoint,而viewpoint可以用targetgeometry指定目标,但是实际用起来貌似没有效果,所...原创 2018-12-27 17:23:43 · 3333 阅读 · 10 评论 -
Cesium访问Tomcat部署的数据文件遇到跨域问题的解决
Cesium可以直接访问网络上符合OGC标准的数据服务,有些服务可以用Tomcat直接部署,有些可以发布到Geoserver上面,本文主要讲访问Tomcat服务时出现的跨域问题解决方法。关于不同GIS数据(比如要素图层、倾斜数据、bim数据等发布成Cesium可以自由加载的数据,在另一篇文章中单独介绍)Cesium是开源js库,数据通过Tomcat发布,当在js库中直接访问数据时,js程序和数据...原创 2019-02-20 17:25:16 · 3950 阅读 · 2 评论 -
geoserver发布切片地图用于Cesium加载-填坑小结
Cesium加载自发布的dom切片地图,使用Cesium对象:Cesium.WebMapTileServiceImageryProvider。亲测可用两种方式:1.geoserver自发布2.arcgis发布松散切片地图每种方式加载参数不一样,步骤也不同。geoserver自发布必须保证数据源坐标系是EPSG:3857,arcgis发布使用arcgisonline默认是3857坐标系。...原创 2019-02-26 15:40:25 · 2913 阅读 · 0 评论 -
Cesium+Vue idea开发环境搭建
参考:https://blog.youkuaiyun.com/m0_37972557/article/details/79768408注意出现Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.错误时,解决方法是在webpack.dev.conf.js...原创 2019-02-27 12:05:01 · 6867 阅读 · 0 评论 -
Cesium使用后期渲染方式实现雾特效
Cesium开源方法里有专门的Fog类,可以实现雾,只要控制其显隐即可。但是由于Cesium有深度测试,需要控制其深度阈值,让其在不同的场景中都能正常显示。cesium超出深度阈值部分就不渲染了,看起来那部分是黑色的,这样确定合适的阈值并根据场景实时变换比较困难。所以果断采用PostProcessStage方式对cesium的webgl渲染后的画面进行重新再次渲染,这样不用担心深度测试的阈值确定不...原创 2019-04-29 15:04:51 · 8812 阅读 · 13 评论 -
Cesium中笛卡尔坐标系到底是什么鬼
使用Cesium开发三维GIS应用离不开笛卡尔坐标系,在CesiumJS中定义类型是Cartesian3,这是Cesium的基础数据类型,所有坐标最后均转换成这个类型参与三维渲染,包括屏幕坐标,地理坐标系坐标。那么问题来了,这个笛卡尔坐标系到底是什么鬼?常用的WGS84怎么转换成这个坐标系的?让我们来看看cesium源码彻底一探究竟。Cartesian3.js里面有个函数fromRadian...原创 2019-05-30 17:56:18 · 7963 阅读 · 5 评论 -
GDAL库+C#环境搭建
为了实现之前推演的算法,需要加工tif格式的dem数据。 程序读取tif使用gdal库,这个库我之前没有接触过,但是作为一名GIS开发人员,有必要深入了解一下该栅格数据处理库。 百度百科:https://baike.baidu.com/item/GDAL/4004525?fr=aladdin 下载:http://trac.osgeo.org/gdal/wiki/DownloadSource ...原创 2018-06-08 17:31:39 · 2922 阅读 · 0 评论