簡體   English   中英

檢測是否基於緯度/經度的多邊形點

[英]Detect if point in Latitude/Longitude based Polygon

我想在服務器端僅使用C#檢測基於緯度/經度的坐標是否在由基於緯度/經度的點組成的區域(多邊形)內。 我認為這樣做的正確方法是光線投射,但也許已經有一個C#實現,因為它不是微不足道的?

此外,我知道SQL Server有一些幾何功能,如STIntersects但為了使用它,我需要運行SQL Server 2008,每次檢查都涉及數據庫連接,這是不可取的。

由於球體是平面的局部微分形態,因此您可以使用任何在笛卡爾平面上工作的算法,例如此SO問題 如果多邊形包含一個極點,您只需要完成平移坐標的工作。 根據您的使用情況,您可以拒絕這些輸入。

我在互聯網上閑逛了一下,發現了這個鏈接

該示例用C語言編寫,但看起來很容易適應C#和Long / Lat坐標。 您需要記住交叉線(NS / EW),並添加代碼以在必要時進行補償,或者在運行函數之前對LatLong值進行十進制轉換(West和South用值<0表示) )。

暫無
暫無

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

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