簡體   English   中英

檢查Point是否位於(或靠近)凸多邊形邊緣

[英]Check if Point is located on(or close to) a convex polygon edges

因此,我正在將KML文件加載到我的Google地圖上,它們在地圖上顯示為凸多邊形。
我也有用戶位置,基本上我想知道用戶是否位於多邊形的邊緣之一(即凸多邊形)上。
並且由於位置服務的准確性不是100%,因此如果位置很近(邊緣距離15m),那就太好了:)

我的解決方案是找到在2個頂點之間傳遞的函數y = f(x),然后檢查用戶位置是否低於f(x)+ a和高於f(x)-a。

我感覺好像缺少了一些東西,應該有一種更好(更准確)的方法來解決我的問題,甚至應該有一個針對Android的Java庫已經解決了這個問題。

謝謝 :)

您可以使用PolyUtil.isLocationOnEdge()正是您想要的。

您應該實現一個確定從點到線段的距離的函數。 您可以在網上找到與此相關的代碼,例如,這里:“ 點與線段之間的最短距離 ”。 然后遍歷多邊形的每個片段。 即使多邊形是非凸的,這也可以工作。

實際上,您可以為凸面多邊形實現更好的時間復雜度,但是可能不值得實施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM