我需要在C#中實現地理柵欄。 Geofence區域可以是圓形,矩形,多邊形等。有沒有人在C#中使用Geofence實現?我發現Geo Fencing - point inside/outside polygon。但是,它只支持多邊形。實現地理柵欄 - C#
3
A
回答
1
6
我已經測試了各種實現方式和這個例子正常工作對我來說:
public static bool PolyContainsPoint(List<Point> points, Point p) {
bool inside = false;
// An imaginary closing segment is implied,
// so begin testing with that.
Point v1 = points[points.Count - 1];
foreach (Point v0 in points)
{
double d1 = (p.Y - v0.Y) * (v1.X - v0.X);
double d2 = (p.X - v0.X) * (v1.Y - v0.Y);
if (p.Y < v1.Y)
{
// V1 below ray
if (v0.Y <= p.Y)
{
// V0 on or above ray
// Perform intersection test
if (d1 > d2)
{
inside = !inside; // Toggle state
}
}
}
else if (p.Y < v0.Y)
{
// V1 is on or above ray, V0 is below ray
// Perform intersection test
if (d1 < d2)
{
inside = !inside; // Toggle state
}
}
v1 = v0; //Store previous endpoint as next startpoint
}
return inside;
}
+1
偉大的答案Fnascimento! – 2014-08-01 13:47:24
相關問題
- 1. 地理柵欄理解地理柵欄一生
- 2. Android更新地理柵欄
- 3. 谷歌播放地理柵欄onHandleIntent
- 4. Java中的地理柵欄庫
- 5. woocommerce中的地理柵欄產品
- 6. Google地理柵欄 - 繪製矩形
- 7. 如何創建地理柵欄
- 8. Android地理柵欄廣播接收器
- 9. 一致的Android地理柵欄監測
- 10. Android中路由的地理柵欄
- 11. 地理柵欄不能刪除?
- 12. 使用Google玻璃的地理柵欄
- 13. 觸發後刪除地理柵欄
- 14. 地理柵欄API工作燈
- 15. 在Google地圖中處理多個地理柵欄
- 16. 地理柵欄:如何識別使用Oracle Spatial重疊地理柵欄邊界的對象(要素)?
- 17. Android中的地理柵欄和離線地圖
- 18. 動態地理柵欄和谷歌地圖Android應用程序
- 19. 在google地圖中獲取城市的地理柵欄
- 20. 用於圓形和矩形地理柵欄的C邏輯/算法?
- 21. 獲取所有註冊地理柵欄的列表
- 22. Android - 如何檢索已註冊地理柵欄的列表
- 23. Siddhi查詢地理柵欄入口檢測
- 24. Android的地理柵欄不會得到任何過渡upates
- 25. 針對xamarin ios的多個區域的地理柵欄
- 26. 在不同的用戶上創建地理柵欄
- 27. 在android中添加地理柵欄服務
- 28. 地理柵欄背景應用程序可能嗎?
- 29. 創建用戶定義地理柵欄的算法
- 30. Android的地理柵欄上沒有錯誤,但
多邊形trivially包含矩形作爲一種特殊情況(假設您設法定義球體上的矩形實際上是什麼)。圓圈可以用畢達哥拉斯定理來檢查。 – CodesInChaos 2011-03-18 13:26:53