esri 判断Point是否在几何图形Geometry上

------- mavn依赖 ------

<dependency>
            <groupId>com.esri.geometry</groupId>
            <artifactId>esri-geometry-api</artifactId>
            <version>2.2.2</version>
  </dependency>

因为业务需要,所以我用了这个包;可能有人也需要,我这里就写了一个很简单的例子。

### 例如计算一个经纬度是否在某一个县内 ???

=============================================================================

package test;

import java.io.IOException;

import org.apache.log4j.Logger;

import com.esri.core.geometry.Geometry;
import com.esri.core.geometry.OperatorContains;
import com.esri.core.geometry.OperatorImportFromWkt;
import com.esri.core.geometry.Point;
import com.esri.core.geometry.SpatialReference;
import com.esri.core.geometry.WktImportFlags;
import com.fasterxml.jackson.core.JsonParseException;

public class Test {
    Logger logger = Logger.getLogger("WQJ.spark.Test");;

    public static void main(String[] args) {

        Geometry p = (Geometry) createPoint1();
        try {
            Geometry pg = createPolygonFromWKT();
            Boolean  b = geometryContains(pg,p,SpatialReference.create(4326));
            System.err.println(b);
            
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    /**
     * 1、将基站经纬度建立成点要素
     *
     * @return
     * @time : 2019年1月8日下午3:42:11
     * @author :
     * @return :Point
     */
    static Point createPoint1() {
        Point pt = new Point(-106.4453583, 39.11775);
        return pt;
    }

    /**
     * 2、将区县的边界建立成面要素
     *
     * @return
     * @throws JsonParseException
     * @throws IOException
     * @time : 2019年1月8日下午3:42:18
     * @author :
     * @return :Polygon
     */
    static Geometry createPolygonFromWKT() throws JsonParseException,
            IOException {
        //请自行搜素了解wkt格式  
        String wktString = "MULTIPOLYGON (((0.1 0.7, 0.1 0.4, 0.3 0.4, 0.3 0.7, 0.1 0.7)),"
                + "((0 0, 0.5 0, 1 0.5, 0.5 1, 0 1, -0.5 0.5, 0 0),"
                + "(0.5 0.2, 0.2 0.3, 0.1 0.2, -0.2 0.5, 0.2 0.9, 0.6 0.5, 0.5 0.2)))";

        Geometry geom = OperatorImportFromWkt.local().execute(
                WktImportFlags.wktImportDefaults, Geometry.Type.Polygon,
                wktString, null);

        return geom;// (Polygon)geom;
    }

    /**
     * 3、判断基站点是否属于该区县
     *
     * @param geometryA
     * @param geometryB
     * @param sr
     * @return
     * @time : 2019年1月8日下午3:42:29
     * @author :
     * @return :boolean
     */
    static boolean geometryContains(Geometry geometryA, Geometry geometryB,
            SpatialReference sr) {
        boolean contains = OperatorContains.local().execute(geometryA,
                geometryB, sr, null);
        return contains;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值