gis - 使用geotools api的WGS84 crs中线段和点之间的最短距离

标签 gis geotools wgs84

在 geotools 中,您可以使用 Geometry 类中的距离函数找到两个几何图形之间的距离。 Geometry 有一个 Point 子类,但没有 Geometry 的线段子类。然而,有 LineSegment 类派生自 LineString,它不是 Geometry 类的子类。我尝试使用 JTS,但看起来 JTS 仅适用于笛卡尔坐标系。

问题:如何在 WGS84 crs 中找到 LineSegment 和 Point 之间的最短距离(以米为单位)。

请注意:我知道在不使用 geotools 的情况下可以在 SO 上找到答案。由于我们在我们的项目中使用了 geotools 并且代码可维护性非常重要,所以我想在 geotools 中做到这一点。

最佳答案

简单的解决方案(假设您的点靠近直线是使用 JTS 找到最近的点(现在忽略地球的曲率),然后使用 GeodeticCalculator 找到两点之间的距离。对于短距离,这个应该没事。

如果您需要更高的精度,您需要重新投影线并指向平面投影,并直接使用 JTS 在该投影中进行所有计算。

PS LineString 扩展几何(检查您拥有哪种几何)。

关于gis - 使用geotools api的WGS84 crs中线段和点之间的最短距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809534/

相关文章:

r - 在 ggplot2 中绘制 map 时避免水平线和疯狂的形状

java - 如何在 geotools 中创建一个简单的 map 比例尺

java - 使用地理工具在多边形中点

java - 如果属性中有几何图形,则 Geojson 文件无法正确导入

math - 计算地球表面任意多边形包围的面积

python - 使用 Pysal 在 map 中绘制线段

yolov5 - 将 Yolo 输出转换为真实世界坐标系

java - 使用 GeoTools 的 Gauss-Kruger 坐标变换不正确 - WGS84

geotools - 如何将地理的 wkt 几何转换为 jts 几何?

python - 将 GeoPandas 多多边形数据框扩展为每行一个多边形