![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GIS开发
cejutue
分享经验,提升自我
展开
-
量化地形处理
正向合并:只需要处理边界瓦片(边界定义,获取量化地形高度范围,如果最低值都大于0,说明不需要合并);找出待生产瓦片边界三角形(左右上下位置比较),判断此三角形是否需要加点(周围边界点查待生产瓦片),重新生成三角形;1: 量化地形切片:GDAL查询数据;按照量化地形tilesize建立位图,位图每个位置(x,y)去查询所在三角形(三角形使用rtree索引,精确查询使用二维点是否在三角形内,边界也算);反向合并:使用带生产瓦片边界查询周围瓦片边界,如果待生产边界点有不与边界瓦片点高度不同,用边界修改自身;原创 2024-05-08 16:45:18 · 327 阅读 · 0 评论 -
相机照片的像素坐标和世界坐标转换
相机照片的像素坐标和世界坐标转换原创 2023-01-31 17:56:27 · 3123 阅读 · 1 评论 -
CGAL点云重建白膜
点云重建原创 2022-09-29 13:55:48 · 881 阅读 · 0 评论 -
meshlab 倾斜瓦片顶层重建简化
meshlab 模型重建后简化原创 2022-08-25 11:30:43 · 1809 阅读 · 0 评论 -
PostgreSQL 内存暴涨编程总结
客户端缓存直接用stdmap存起来即可,key可以是sql语句,value可以是uuid。一般来说内存暴涨都是资原未释放,或者说创建了太多资原。服务端内存暴涨最常见就是创建了太多服务端资原对象.原创 2022-07-19 10:18:30 · 1424 阅读 · 0 评论 -
达梦数据库是支持空间索引的?
这事估计得坑我一段时间了, 很多年前设计和实现达梦数据源得人, 公司其他人都告诉我达梦不支持空间索引, 所以我们自己做了索引.然而一个惊喜在今天被发现, 在达梦 DM系统包使用手册, SQL语言使用手册 都提到了空间索引,而且文档里面写着 直接支持opengis2.0 标准, 这叫我情何以堪, 抱着侥幸去看系统dll和包, 好家伙赫然哟jts.jar, geos.dll 这两货就是空间计算得, 难道当初研究得人不知道吗? 只能说呵呵了, 既然有那么简单验证下吧.初始化空间包DMGEO, 创建原创 2022-05-30 18:29:03 · 962 阅读 · 3 评论 -
开源分布式空间数据引擎分析(2)
GeoMesaHbase原创 2022-05-09 15:39:42 · 612 阅读 · 0 评论 -
开源分布式空间数据引擎分析(1)
hbase 大数据, GeoMesa geotrilles原创 2022-05-09 15:31:48 · 711 阅读 · 0 评论 -
关于Oracle Spatial 三维数据支持得坑
Oracle Spatial 存储三维数据原创 2022-04-14 11:37:28 · 928 阅读 · 0 评论 -
GDAL VSI文件扩展(virtual_file_systems扩展)
GDAL 扩展原创 2022-04-14 10:12:45 · 552 阅读 · 0 评论 -
求三角网的边界, 用以改进QEM算法简化破洞问题
改进QEM 算法 三维简化 GIS原创 2022-04-01 09:58:21 · 776 阅读 · 0 评论 -
hbase 读写空间数据(六)-总结
hbase空间存储查询总结原创 2022-03-15 18:22:13 · 2753 阅读 · 0 评论 -
hbase 读写空间数据(五)-存储与空间查询瓦片数据
hbase 存空间数据 , 存储查询瓦片数据原创 2022-03-14 19:01:54 · 2625 阅读 · 0 评论 -
hbase 读写空间数据(四)-空间查询优化
上一篇空间查询不涉及到任何得效率优化, 本篇先做一个简单得效率优化,仅仅针对点数据的(PS: 线面数据还没搞定), 具体原理如下:1: hbase 得索引都在rowkey上, rowkey在hbase中是排寻的, 查询如果指定Start rowkey 那么在大数据量情况下可以快速定位到数据在那些节点上, 这有点类似 跳表, 1-10亿个排序点值, 如果我指定从5亿位置开始那么将减少一般搜索区间.2: 点数据目前实验代码采用geohash(网上虽然一艘一大堆, 但是这里要注意, 对于空间数...原创 2022-03-13 13:44:53 · 2478 阅读 · 0 评论 -
hbase 读写空间数据(三)-空间相交粗查
hbase 空间存储原创 2022-03-11 10:11:17 · 1927 阅读 · 0 评论 -
hbase 读写空间数据(二)-空间包含粗查
hbase空间存储引擎设计, 不侵入hbase原创 2022-03-09 17:20:50 · 1176 阅读 · 0 评论 -
hbase 读写空间数据(一)
hbase版本2.4.8, 使用最新api ,所有弃用函数和类尽量没有调用, 使用最新接口. 将Geometry, long, string,double等基本类型和几何类型都存储到hbase. hbase使用单机模式.其中Geometry 转为wkb存储.package hbasedatabase;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Array...原创 2022-03-09 12:05:31 · 551 阅读 · 0 评论 -
XZordering 的C++实现
网上搜了很多XZ-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C++, vs2015, 理论#include "stdafx.h"#include <vector>#include <list>#include <queue>#include <map>#include <algorithm>#include <iostream原创 2022-03-04 16:55:48 · 463 阅读 · 1 评论 -
Z-Ordering 编码及查询c++实现(简称Z2)
通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C++.#include "stdafx.h"#include <vector>#include <list>#include <queue>#include <algorithm>#include <iostream>#include <deque>#inclu原创 2022-03-03 18:26:47 · 679 阅读 · 0 评论 -
OracleSpatial ST_XXX 相关函数几何操作容差
无意中在spatial-and-graph-developers-guide 12.2.pdf读到一段说明:Tolerance Value with SQL Multimedia TypesBecause the SQL Multimedia standard does not define how tolerance is to be used with the ST_ xxx, Spatial and Graph uses a default value of 0.005 in all th...原创 2022-01-17 14:49:57 · 625 阅读 · 0 评论 -
FileGDBAPI 二次查询空间数据失败解决办法
问题: 坑爹得filegdb数据,只能查询一次, 第二次查询只返回2条数据分析: 在QGIS, ArcMap中重新查看, 数据正常, 使用FileGDB_API_1_5_1-VS2015\samples\Querying 这个库里面用例直接查也是正常. 但是我使用得时候先统计了个数, 再执行查询, 于是出问题得代码出现了,:int Searchtest(Table &table){ fgdbError hr; wstring ...原创 2021-11-09 09:27:13 · 263 阅读 · 0 评论 -
计算兰伯特投影数据到其他空间参考的地理范围
问题: 在实现动态投影得时候未考虑兰伯特这种投影, 导致投影得数据过少, 数据有缺失分析: 常用投影计算是将一个投影得box范围计算到另外一个投影得box上, 直接使用box得四个点计算, 但是兰伯特投影得box他对应得box范围并不是根据box得四个点来确定得解决方案: 将兰伯特得数据按照范围分割成很多小块统计对应得其他空间参考得范围, 遍历每块范围合并成一个整块即可得到一个包含当前兰伯特投影数据得范围, 这个范围比当前范围要大, 示意图如下:...原创 2021-10-26 17:31:16 · 334 阅读 · 0 评论 -
关于兰伯特投影得应用问题
问题的发现: 使用一个矩形范围 将四个点投影算法到另外四个点, 然后求取一个box, 以为这个box是包含正确得范围,其实y是个错误得,问题 原因, 请看下图:假如常规我们实现动态投影通过绿色box泛酸原始范围, 那么得到范围y方向必然比黄色点小, 这就i造成了投影所需数据变少, 反算投影出来是个反得梯形.所以关于兰伯特等角投影我们就不能简单使用box正反算来解决动态动态投影不正确问题, 在ArcGIS中单点计算也是错误得, 但是矩形范围计算他就是正确得, 可以说明他做了特殊...原创 2021-10-20 11:58:35 · 512 阅读 · 0 评论 -
Lambert 投影转换相关代码
最近与Lambert投影做了一段时间斗争, 从saga中扣出来一个可直接使用得方法调用代码 double a = 6378245;// oSourceSRS.GetSemiMajor(); //oSourceSRS.get double f = 1.0000000000000000000 / 298.3;// oSourceSRS.GetInvFlattening(); double Origin_Latitude = 0 * PI / 180; double Central_Merid原创 2021-09-27 09:36:09 · 1045 阅读 · 3 评论 -
河流溯源分析
需求: 基于水系分析河流溯源路径输入: 河流数据实现思路: 基于网络模型, 根据 河流交点打断生成河流网数据, 这跟路网不同, 河流一般都是单向流向, 所以是有向图.基于GDAL gnm算法数据结构有以下实现:/// \brief 顶点对象, 顶点内不带几何,方便算法运行,要查询几何可以直接去Storage根据ID查询struct Vertex{public: /// \brief 顶点ID long long VertexID = 0; /// \brief 是...原创 2021-09-09 14:12:20 · 447 阅读 · 0 评论 -
opengl绘制 椭球体
#include "pch.h"#include "testpublic.h"#include "include/glad/glad.h"#include "shader.h"#include <glad/glad.h>#include <GLFW/glfw3.h>#include "stb_image.h"#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#in.原创 2021-06-22 16:01:58 · 779 阅读 · 0 评论 -
opengl 绘制 椭球并可以鼠标滚动,滚轮放大缩小
#include "pch.h"#include "testpublic.h"#include "include/glad/glad.h"#include "shader.h"#include "camera.h"#include <glad/glad.h>#include <GLFW/glfw3.h>#include "stb_image.h"#include <glm/glm.hpp>#include <glm/gtc/matr...原创 2021-06-23 11:59:33 · 493 阅读 · 1 评论 -
c++实现快速气象格网数据成图: 风力图, 卫星云图,雷达反射图, 雨量图,温度图
输入数据格式说明:以上DISK和REG开头都为气象云图为红外数据PRCP为降雨量图TMP为温度图U和V开头的为水平和垂直风力分量数据Z_OTH为雷达反射图先放成图效果,后方成图算法,效果图如下: (图中所有分级配色参照中国气象配色使用吸管吸取的)温度图:风力图: 风向风向图(有点丑待优化):卫星云图:气象雷达反射图:雨量:...原创 2019-09-27 21:34:45 · 2509 阅读 · 0 评论 -
GIS内核加载失败的解决办法
内核加载Java代码: System.loadLibrary("gsjavaport"); // 另外加载方式同理 win System.load("C:\testkernel\gsjavaport.dll"); //linux System.load("C:\testkernel\libgsjavaport.so"); com.geostar.kernel.GsKernel.Initialize();本文下面内容按照每行代码分...原创 2020-07-10 12:43:53 · 1100 阅读 · 0 评论 -
使用libwebp 库编解码图片
webp格式可以大幅压缩图像的数据大小, 比png和jpg还要高很多, 具体高多少网上一堆,不做过多叙述, 直接上例子1:编码 WebPPicture m_Picture; WebPConfig m_Config; GsRGBAType m_inputType;if (!WebPPictureInit(&m_Picture) || !WebPConfigInit(&m_Config)) GS_E << "W...原创 2021-03-17 14:05:55 · 3892 阅读 · 0 评论 -
CGAL 求三维体数据的交并差(三维布尔运算)
本示例使用 boost_1_68_0, CGAL-5.1.2特别提醒: 目前CGAL5以上版本可以用头文件模式使用, 编译出来的东西运行仅仅依赖libgmp和libmpfr , 以前编译出来的会依赖一堆boost和cgal 的dll,部署容易出错.CGAL首先是模板库开发, 要先定义一堆模板对象:#pragma once// Construction kernel#include "CGAL/Exact_predicates_exact_constructions_kerne...原创 2021-08-23 11:41:09 · 2718 阅读 · 0 评论 -
ArcGIS Pro .net sdk 访问Oracle
using ArcGIS.Core.Data;using ArcGIS.Core.Geometry;using ArcGIS.Core.Hosting;using Microsoft.Win32;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Ta.原创 2021-03-02 14:40:54 · 107 阅读 · 0 评论 -
全球二三维金字塔分割示意图
全球地理范围二三维空间划分金字塔示意图:原创 2020-09-25 16:36:47 · 733 阅读 · 0 评论 -
Oracle 批量提交,批量绑定 OCIBindByName 和OCIBindObject 的使用
穷遍所有OCI文档找不出一个能绑定多行数据的说明和示例,自己尝试快两周解决了Oracle Spatial 批量绑定将Oracle的写入效率提升到了5000行左右,以下是一点心得Oracle OCI 基本操作 本文不多说,假设你会用基本的OCI操作数据,但是不知道怎么用OCIBindByName 一次可以绑定级别上千行数据, 本文将对你有点用从Statement 说起,分以下三步1...原创 2020-04-29 13:02:21 · 1637 阅读 · 0 评论 -
arcgis wmts 和天地图 服务叠加的偏移问题解决
首先直接说问题本质:图层分辨率计算方式不一致,arcgis 通常有两个分辨率矩阵:天地图通常只有一个:综合来看上面的两个服务arcgis 有一个96dpi和90.7dpi(25.4 / 0.28)的瓦片矩阵, 如果用90.7得当然不能和天地图96dpi得数据对得上, 有两种解决方法:1: 不用arcgis 90.7dpi得矩阵, 用96的, 这种需要切片...原创 2020-04-13 13:22:06 · 6047 阅读 · 2 评论 -
使用GDAL 的GDALBuildVRT 解决影像融合接边均色 问题
问题: 多幅影像切片,但是影像直接有重叠还有黑边, 还有色差.如图: 需要达到的效果:解决方案:使用GDALBuildVRT 构建 虚拟数据集, 并使用额外参数hidenodatasrcnodatavrtnodata关键代码如下: 其中names 就是一堆tif,img的 GDAL能打开的影像数据集, 创建完成后就可以把返回的t当作普通GDAL栅格数...原创 2019-10-15 00:01:53 · 2396 阅读 · 9 评论 -
GIS内核-开启编辑捕捉示例
内核编辑捕捉需要两个操作,绑定Map和绑定图层,具体示例如下 //GsMapPtr m_ptrGeoMap;///< 内核地图对象 //map绑定捕捉容器 GsSnapContainerPtr ptrSnap = new GsSnapContainer(space->m_ptrGeoMap); //添加节点捕捉算法对象 ptrSnap->AddSnaper(new GsN...原创 2018-05-22 14:10:46 · 652 阅读 · 0 评论 -
GIS内核-编写自定义图层并完成绘制业务
需求问题:多个影像文件图层,和其对应的几何范围,需要一起显示,GIS内核只设计了基本的单个影像和单个地物类绘制的图层,请参见前面 GIS内核-加载tif 影像文件图层,以及GsFeatureLayer.封装一个自定义的图层至少要继承GsLayer 类,并且至少实现基本的基类 虚函数接口.下面是我封装的一个直接撸代码,头文件定义:class GsCoustomRasterLayer :publi...原创 2018-05-21 23:59:54 · 320 阅读 · 0 评论 -
GIS内核-加载栅格瓦片图层
void AddTileLayer(){ GsSqliteGeoDatabaseFactoryPtr fcsFac = new GsSqliteGeoDatabaseFactory(); GsGeoDatabaseFactoryPtr fac = fcsFac; GsConnectProperty cp; cp.DataSourceType = GsDataSourceType::eSq...原创 2018-05-20 22:32:47 · 593 阅读 · 0 评论 -
GIS内核-加载tif 影像文件图层
void AddFileLayer(){ GsFileGeoDatabaseFactoryPtr fcsFac = new GsFileGeoDatabaseFactory(); GsGeoDatabaseFactoryPtr fac = fcsFac; GsConnectProperty cp; cp.DataSourceType = GsDataSourceType::eFile;...原创 2018-05-20 22:31:02 · 2235 阅读 · 2 评论