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 the application environment to associate some measure with the point values. )

 

点要素在 geometry api java 中分为“点 Point ”和“顶点 Vertex”

Point 一般指点要素,包含X、Y、Z、M (double) 属性

Vertex一般指构造中的点要素(组成线面体的基础要素)

其中Vertex在Point 的基础上还要添加所属ID、内插属性、贴图坐标等特殊属性与方法  (本文主要描述Point ,之后会在本文补偿或者再写一篇)

 

Point 的初始定义:

1.直接定义

1     public Point createPoint() {
2 
3         Point pt = new Point(0.05, 0.05);
4 
5         return pt;
6     }

 

2.读取JSON数据

OperatorImportFromJson.local().executeexecute(Geometry.Type type, String string);

Type :Geometry.Type寻找,这里是Point
string :JSON字符串
1     public Point createPointFromJson() throws JsonParseException, IOException {
2 
3         String jsonString = "{\"x\":-106.4453583,\"y\":39.11775,\"spatialReference\":{\"wkid\":4326}}";
4 
5         MapGeometry mapGeom = OperatorImportFromJson.local().execute(Geometry.Type.Point, jsonString);
6         return (Point)mapGeom.getGeometry();
7     }

 

3.读取GeoJSON数据

OperatorImportFromGeoJson.local().execute(int importFlags, Geometry.Type type, String geoJsonString, ProgressTracker progressTracker);
importFlags :

    geoJsonImportDefaults = 0;      默认WGS84坐标系
    geoJsonImportNonTrusted = 2;     不可信点
    geoJsonImportSkipCRS = 8;       跳过CRS
    geoJsonImportNoWGS84Default = 16; 非WGS84坐标系

type :Geometry.Type寻找,这里是Point
geoJsonString :GeoJSON字符串
progressTracker :null
1     public Point createPointFromGeoJson() throws JsonParseException, IOException {
2 
3         String geoJsonString = "{\"type\":\"Point\",\"coordinates\":[-106.4453583,39.11775],\"crs\":\"EPSG:4326\"}";
4 
5         MapGeometry mapGeom = OperatorImportFromGeoJson.local().execute(GeoJsonImportFlags.geoJsonImportDefaults, Geometry.Type.Point, geoJsonString, null);
6         return (Point)mapGeom.getGeometry();
7     }

 

4.读取WKT数据

OperatorImportFromWkt.local().execute(int import_flags, Geometry.Type type,String wkt_string, ProgressTracker progress_tracker);
import_flags :同上
Type :同上
wkt_string :WKT字符串
progressTracker :null
1      public Point createPointFromWKT() throws IOException {
2  
3          String wktString = "Point (-106.4453583 39.11775)";
4          Geometry geom = OperatorImportFromWkt.local().execute(WktImportFlags.wktImportDefaults, Geometry.Type.Point, wktString, null);
5  
6          return (Point)geom;
7       }

 

  创建Point实例

1         PointLearn PointLearn = new PointLearn();
2         Point p1 = PointLearn.createPoint();
3         Point p2 = PointLearn.createPointFromWKT();
4         Point p3 = PointLearn.createPointFromJson(); 
5         Point p4 = PointLearn.createPointFromGeoJson();

 

Point 的数据结构:

  见https://blog.csdn.net/wtr1717/article/details/87866570

 

Point 的常用方法:

 

  数据操作

       point .setAttribute(semantics)    setX()    setY()    setZ()    setM()    setID()    setXY()    setXYZ() 设置属性   

              均是检查VertexDescription后,对 m_attributes 的操作

    point .getAttribute(semantics)  getX()  getY()  getZ()    getM()   getID()   读取属性值   

              均是检查VertexDescription后对 m_attributes 的操作

 

  拓扑操作

    判断相等(m_description结构相同 + m_attributes数据相同)    p1.equals(p2);

    坐标转换(二维仿射变换)    (之后会在坐标转换专题再说~)

Transformation2D tr = new Transformation2D();
p1.applyTransformation(tr);

 

    创建外接矩形 queryEnvelope

    获取边界 getBoundary  (return null 哈哈哈哈)

 

  属于geometry通用功能,见 学习文档(2)geometry https://blog.csdn.net/wtr1717/article/details/87871204

       

 

  判断数据状态

    p1.getType();        类型

    p1.getDimension();       维度

    p1.isEmpty();        空值

    p1.estimateMemorySize();   消耗内存

  属于geometry通用功能,见 学习文档(2)geometry https://blog.csdn.net/wtr1717/article/details/87871204
   p1.replaceNaNs     清空数据
    p1.setEmpty();     全部置空

  

  复制操作:

    opyTo(Geometry dst)
    createInstance()

  属于geometry通用功能,见 学习文档(2)geometry https://blog.csdn.net/wtr1717/article/details/87871204

以上是对于Point的总结,希望大家交流学习,如有错误请在评论指出谢谢。



参考:http://esri.github.io/geometry-api-java/doc/Point.html
    http://esri.github.io/geometry-api-java/javadoc/com/esri/core/geometry/Point.html

posted @ 2019-01-17 14:57 第17个巡道工 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值