Esri geometry api java 学习 实战文档 (4) 多点 (MultiPoint)

多点(MultiPoint) 很容易被认为是简单的Point数组,但是在Esri geometry api 中,多点被归类为多顶点几何形状(MultiVertexGeometry)。

多顶点几何形状(MultiVertexGeometry)不仅继承了几何类(Geometry)所规定的基本几何处理函数(见https://blog.youkuaiyun.com/wtr1717/article/details/87871204 常用的什么长度、面积、边界、Envelope等等都在里面)

还因其内部包含着子形状,更多的定义了对子形状的操作。比如说

 

getPointCount内部点数
getPoint得到点
setPoint设置点
queryCoordinates获取所有点    MultiPoint -> Point[]

MultiPoint 与 MultiVertex 非常相似(毕竟多点和多顶点只是含义有区别)下面就说MultiPoint对内部Point的操作

 

    add(double x, double y)

    add(Point point)

    或者像Point一样由JSON、GeoJSON、WKT直接批量导入

    还可以使用 insertPoint(int beforePointIndex, Point pt)  插入

    removePoint(int pointIndex)

    setPoint(int index, Point pointSrc)

    可以只查一个:getPoint(int index)

    也可以查出列表:queryCoordinates(Point[] dst) (配合getPointCount())

            Point[] pa1 = new Point[mp1.getPointCount()];
            mp1.queryCoordinates(pa1);

 

此外作为配套,还使用

    getPointCount()查询点数 

    getStateFlag()查询是否改动(上次检查之后,出现改动会使得返回值+1)

        比如说:

		mp1.getStateFlag();
		mp1.insertPoint(0, p2);
		mp1.getStateFlag();
		mp1.removePoint(0);
		mp1.getStateFlag();

        会返回1 、2 、3,但是

		mp1.getStateFlag();
		mp1.insertPoint(0, p2);
		mp1.removePoint(0);
		mp1.getStateFlag();
		mp1.getStateFlag();

        会返回1 、2 、2,而不是1 、3 、3。

 

    使用queryEnvelope(Envelope env)获得域

		Envelope env1 = new Envelope();
		mp1.queryEnvelope(env1);

 

 

    使用 resize(int pointCount) 来调整大小(像是保留小数?)

        如果MultiPoint包含n个点,

        pointCount ≤ n :则取前pointCount个点(虽然剩下的点不删除还可以恢复,但是已经不参与任何操作)

        pointCount > n :则不足pointCount的点在后面补(0,0)

 

 

参考:

http://esri.github.io/geometry-api-java/javadoc/com/esri/core/geometry/MultiVertexGeometry.html

http://esri.github.io/geometry-api-java/javadoc/com/esri/core/geometry/MultiPoint.html

http://esri.github.io/geometry-api-java/doc/Multipoint.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值