首先,我是GIS的新手,请见谅我的错误。我需要查找两个经纬度点之间的距离,一个为点,另一个为多边形(不规则或规则)。准确地说,我需要发现给定点到多边形边界上某个点的最小距离,如下所示。在这个例子中,点p
到多边形的最近距离是d
。注意:我只需要距离,不需要点。
阅读一些文献后,我使用GeoTools API编写了以下最小工作示例。然而,我认为输出方面有些问题。是否有人可以告诉我如何获取以米为单位的点到多边形之间的最小距离?
MWE.java:
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
public class MWE {
public static void main(String[] args) throws Exception {
GeometryFactory gf = JTSFactoryFinder.getGeometryFactory();
Coordinate[] c = new Coordinate[5];
c[0] = new Coordinate(-49.242986, -16.662430);
c[1] = new Coordinate(-49.241999, -16.664465);
c[2] = new Coordinate(-49.239146, -16.663828);
c[3] = new Coordinate(-49.239832, -16.661443);
c[4] = new Coordinate(-49.242986, -16.662430);
Geometry geo = gf.createPolygon(c);
Point p = gf.createPoint(new Coordinate(-49.246870, -16.665493));
double distance = geo.distance(p);
System.out.println("Distance: " + distance);
}
}