Esri geometry api java
巡道工王师傅
愿你的每一步富有意义
展开
-
Esri geometry api java 学习 数据结构 (3) 点的数据结构 (Point)
上节讲到了VertexDescription,它规定了Esri以顶点为单位组成的几何结构。从今天起我们来依次分析各个几何类的数据结构,就由最简单的Point来开始吧~ Point首先Point构建了数组 double[] m_attributes; double数组来存储 everything!everything!m_attributes(类似存储单元)的数据顺序和语义...原创 2019-02-21 19:49:26 · 405 阅读 · 0 评论 -
Esri geometry api java 学习 数据结构 (6) 半边结构的使用(half edge)
Esri 在处理拓扑操作时大量使用了半边结构,首先对所有边做半边转化,之后再建立各个半边之间的邻接关系,最终得到拓扑关系,得到的边拓扑关系供求交、补、并等拓扑分析使用。所谓半边结构,简单说来是对一个边的一分为二。分开之后我们也就把共线多边形成功转化成各取一边的非共线多边形,成功分割了有交集的多边形。一个正确的半边结构会保存: 整边:生成半边的整边 半边1:另一个半边...原创 2019-03-28 20:53:38 · 289 阅读 · 0 评论 -
Esri geometry api java 学习 功能实现 (3) 使用Cracker + Cutter的 图形切分(Cut)
Cracker:我们都知道基础的几何形状是由顶点与线段组成的,前文的Cluster已经把一堆挤成一团的点简化成了一个点,那么这么做同时也就能保证线段也是简单并且符合精度吗?显然事情并不是这么简单:类似图上的点符合了精度要求,但是线确实在是有相交情况,或者靠近程度在精度之内了,那么我们怎么处理这些线段呢?Cracker提供了这个方法:1.使用扫描线法找到两条相近线段(见上文...原创 2019-03-25 21:11:27 · 410 阅读 · 0 评论 -
Esri geometry api java 学习 功能实现 (2) 使用PlaneSweepCrackerHelper+SweepComparator的平面扫描
之前我们说到了Cluster 和 Cracker 的对点对线的操作,这些都涉及到选取局部几何图形的问题,针对一些含节点数量较少的形状我们可以使用最暴力穷举解决它,那么遇见几百几千几万节点的大图呢?穷举肯定会把计算机跑死的(也不能体现这帮写算法的本事啊)。这里面Esri使用了平面扫描法对整个图形扫描找到需要进行处理的区域并提出数据来比较输出。扫描原理:1.图形处理的扫描线在此定...原创 2019-03-21 22:01:11 · 286 阅读 · 0 评论 -
Esri geometry api java 学习 功能实现 (1) 使用Cluster + Cracker的图形简化(保证精度)
本来今天想写一篇关于Cut操作的文章,但是。。。虽然cut这个东西感觉非常简单,不就是用一个切割者cutter(一条线),把被切割者cuttee(线或体)切成几段嘛。。。但是实际上真的至少有好几千行代码才能支持起这个功能。。。为当年Esri的程序员默哀一分钟。。。这么复杂一个东西我们也不能一口吃成个胖子,那就先谈谈它的一个前置:使用Cluster的的图形简化话说Cl...原创 2019-03-16 18:51:21 · 403 阅读 · 0 评论 -
Esri geometry api java 学习文档 (1) 概述
Esri geometry api java 学习文档 (1) 概述最近整理一下JAVA开发使用到的工具,包括OGC标准、JTS、GeoTools、Esri 和 GDAL。因为正好在学习Esri 的 geometry api java,所以就从它开始吧~一、geometry api java 可以做什么? 二者关系判断 Contains 可以判断两个几...原创 2019-01-14 20:41:00 · 635 阅读 · 0 评论 -
Esri geometry api java 学习 数据结构 (5) 对属性流(AttributeStream)数组的控制
上节说道,多顶点形状的每一种属性都以属性流AttributeStream的形式保存,今天就来看一下AttributeStream是如何实现对属性的控制的(以double类型的数组AttributeStreamOfDbl为例)。对数组的控制主要靠两点:数组的长度:private int m_size;和数组的内容:private double[] m_buffer = null;从这...原创 2019-03-11 21:20:26 · 157 阅读 · 0 评论 -
Esri geometry api java 学习 数据结构 (4) 多顶点形状的数据结构 (MultiVertexGeometry、MultiPoint、Polygon、Polyline)
上一节讲的是点Point在Esri的存储方式,那么现在多顶点是如何存储的呢?既然Point使用了数组:double[] m_attributes; double数组按顺序存储所有属性数据,那么多点就可以使用二维数组做一个Point[] MultiVertex =Point[]();不就好了嘛(`・ω・´)但是把所有属性数据都用double存储实在是太奢侈了!另外在处理地理数据...原创 2019-03-07 21:42:06 · 731 阅读 · 0 评论 -
Esri geometry api java 学习 数据结构 (2) 几何数据结构 (VertexDescription)
Esri geometry api java 学习文档 (3) 几何数据结构 (VertexDescription)本章重点描述Esri是如何建立整个几何体系的,如果没有需要可以pass,想建立自己数据体系的看看这些结构和思路还是很有意思且很有意义的。VertexDescription存在于所有几何类型中,它规定了整个数据的存储格式和存储方法(像是数据库建表文件?)先看一看各几何...原创 2019-02-18 21:39:00 · 319 阅读 · 0 评论 -
Esri geometry api java 学习 实战文档 (7) 最小外界矩形 (Envelope)
Esri geometry api java 学习文档 (5) 最小外界矩形 (Envelope)Envelope是最小外界矩形,在几何集合中有很重要的作用。Envelope相当于geometry的存在域。当几何集合进行判断时,将先判断几何体的Envelope是否在需要判断的Envelope中。可以作为索引在分幅、四叉树存储与计算等方面有重要作用,大大加快运算速度。Po...原创 2019-01-28 15:35:00 · 677 阅读 · 0 评论 -
Esri geometry api java 学习 实战文档 (6) 面、多面 (Polygon)
Esri geometry api java 学习文档 (4) 面、多面 (Polygon)面要素Polygon是是一个2维的空间数据,每个面要素一组环(Ring),每条环包含着一组点(n≥2)。与Polyline相同, 面要素Polygon同样属于Geometry类中的MultiVertexGeometry(多顶点形状)中的MultiPath(多线),与Polyline不同的是Polyg...原创 2019-01-24 17:18:00 · 1591 阅读 · 0 评论 -
Esri geometry api java 学习 实战文档 (3) 点 (Point)
Esri geometry api java 学习文档 (3) 点 (Point)我们先从开始基础的内部类开始学习,今天要讲解的是拓扑的基础要素“ 点 Point ”点是一个0维的空间数据,一定包含XY坐标信息,可能包含Z、M属性,上图是OGC对于点的结构定义。其中Z为三维高程数据,M(measure )与应用环境有关。(The m coordinate value allows ...原创 2019-01-17 14:57:00 · 759 阅读 · 0 评论 -
Esri geometry api java 学习 实战文档 (5) 线、多线 (Polyline) 与 Polyline+Polylgon的父类MultiPath
Esri geometry api java 学习文档 (3) 线、多线 (Polyline)线要素是是一个1维的空间数据,每个线要素一组单线(paths),每条单线包含着一组点(n≥2)。这里与OGC、JTS不同的是,Esri更喜欢用一个Polyline表示多线元素,单线 = 只有一个元素的多线,而不喜欢把Line和MultiLine单独分开。线要素由一组点要素组成,这些点要素...原创 2019-01-21 23:52:00 · 910 阅读 · 0 评论 -
Esri geometry api java 学习 实战文档 (4) 多点 (MultiPoint)
多点(MultiPoint) 很容易被认为是简单的Point数组,但是在Esri geometry api 中,多点被归类为多顶点几何形状(MultiVertexGeometry)。多顶点几何形状(MultiVertexGeometry)不仅继承了几何类(Geometry)所规定的基本几何处理函数(见https://blog.csdn.net/wtr1717/article/details/8...原创 2019-02-27 16:43:22 · 714 阅读 · 0 评论 -
Esri geometry api java 学习 功能实现 (4) 空间分析、几何分析
Esri geometry api java 学习 功能实现 (4) 空间分析、几何分析Esri geometry api java 中,使用最多的功能莫过于空间关系的判断和计算,常规的操作是:求交、求并、求差、求对等差分对应的函数为Difference Union Intersection SymmetricDifference (调用方法请点击查看)他们其实...原创 2019-05-18 16:35:28 · 984 阅读 · 1 评论