在几何工具中,可以使用几何类中的距离函数来找到两个几何图形之间的距离。几何有一个点子类,但没有几何的线段子类。然而,LineSegment类是从LineString派生出来的,它不是几何类的子类。我试过使用JTS,但似乎JTS只适用于笛卡尔坐标系。
问题:如何在LineSegment和WGS84 crs中的点之间找到最短距离(以米为单位)。
请注意:我知道有答案,所以这样做,而不使用地理工具。由于我们在项目中使用geotools,并且代码可维护性非常重要,所以我想在geotools中这样做。
发布于 2014-07-18 11:46:36
简单的解决方案(假设你的点靠近这条线)是使用JTS来找到最近的点(暂时忽略地球的曲率),然后使用GeodeticCalculator来找到这两个点之间的距离。对于短距离,这应该是好的。
如果您需要更高的精度,您需要重新规划您的线和指向一个平面投影,并在该投影中的所有计算直接使用JTS。
PS LineString扩展了几何学(检查你有哪种几何)。
发布于 2017-05-03 01:44:28
在我看来,您必须使用geotools将WGS84和弦转换为TM,linestring..Here是我的博客中关于CRS类geotools的一些示例代码。
..。然后计算线串上点到点的距离。您最终可以通过将原始的协调参考系统转换为来自TM的WGS84 (Transverse)来获得结果。
https://github.com/geotools/geotools/blob/master/docs/src/main/java/org/geotools/jts/SnapToLine.java
还有更多关于距离的讨论,您可以查看下面的geotools用户站点。
http://osgeo-org.1560.x6.nabble.com/position-on-LineString-that-is-closest-to-Point-td4322083.html
https://stackoverflow.com/questions/24809534
复制相似问题