2014-07-17 51 views
2

在geotools中,您可以使用Geometry類中的距離函數找到兩個幾何之間的距離。有一個Geometry的Point子類,但沒有Geometry的線段子類。然而,LineSegment類是從LineString派生而來的,它不是Geometry類的子類。我嘗試過使用JTS,但是它顯示爲JTS僅適用於笛卡爾座標系。使用地理工具api的線段和WGS84 crs中的點之間的最短距離

問題:如何在WGS84 crs中找到LineSegment和Point之間的最短距離(以米爲單位)。

請注意:我知道有沒有使用地理工具的SO可用的答案。由於我們在項目中使用geotools,並且代碼的可維護性非常重要,所以我想在geotools中完成。

+0

在我看來,你必須將你的WGS84座標轉換爲TM – tommybee

回答

0

簡單的解決方法(假設你的意思是接近的線是用JTS找到的最近點(忽略地球的曲率現在),然後使用GeodeticCalculator找到兩點之間的距離。對於短距離,這應該是罰款。

如果您需要更準確,你需要線(S)和點重新投影你的平面投影,直接使用JTS做在投影全部計算。

PS線段形式擴展幾何(檢查你有哪種幾何)

0

在我看來,你必須使用geotools都指向WGS84 COORDS轉換爲TM COORDS和linestring..Here是我的博客大約CRS類geotools

http://blog.naver.com/tommybee/50154157186

的一些示例代碼。 ..然後計算線上點和點之間的距離。 您可以通過原有的協調參照系統轉換爲從TM(橫向Meractor)一WGS84最終得到的結果

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