以GeoJSON:检查是否一个地理坐标是多边形内部

问题描述 投票:0回答:1

我有以下其中包含一个具有坐标多边形GeoJSON的数据文件。

[
    {
        "geometry": {
        "type": "Polygon",
        "coordinates": 
[
        [
          [
            9.137248,
            48.790411
          ],
          [
            9.137248,
            48.790263
          ],
          [
            9.13695,
            48.790263
          ],
          [
            9.137248,
            48.790411
          ]
        ]
      ]
    }
    }
  ]

随着org.geotools.geojson.geom.GeometryJSON的帮助下,我解析JSON在com.vividsolutions.jts.geom.Polygon类的坐标为如下。而且还检查是否Coordinate(9.13710, 48.790360)是这样的多边形内部或没有。

GeometryJSON g = new GeometryJSON();
         com.vividsolutions.jts.geom.Polygon polygon = g.readPolygon(new File(fileLocation));
         System.out.println("Type="+polygon.getGeometryType());

         GeometryFactory gf = new GeometryFactory();
         boolean pointIsInPolygon = polygon.contains(gf.createPoint(new Coordinate(9.13710, 48.790360)));
         System.out.println("Point is in polygon="+pointIsInPolygon);

但是我的程序总是给我下面的结果给出的坐标是不多边形。

Result

类型=多边形

Point is in polygon=false

一),你可以看到为什么pointIsInPolygon是假的。我缺少的东西吗?

B)什么Cordinate我应该给这里,所以使qazxsw POI qazxsw POI结果

C)是否有任何其他的方法来分析给定的JSON文件中的多边形,并确认,如果一个坐标在于多边形或不?

java geometry geojson geotools point-in-polygon
1个回答
1
投票

你点在多边形外所以结果是正确的。在这里,红点是你的,如果你改变它是pointIsInPolygon(绿点),则返回true。

true

© www.soinside.com 2019 - 2024. All rights reserved.