我想知道如果我得到經緯度的用戶並且想檢查他是否位於存儲在我的數據庫中的任何多邊形( MongoDB的)。這怎麼能通過mongoDB來實現。 例如我的數據庫將有10個多邊形存儲爲GeoJson對象。我得到一個經緯度,並且想要檢查這個緯度長度是否在我DB中的10個多邊形中的任何一個。 這可以在MongoDB中實現嗎?查找是否給定經緯度位於MongoDB中的任何多邊形
3
A
回答
0
我不認爲你的特定情況可以在MongoDB中實現。 MongoDB確實有$polygon operator的多邊形計算。但是,這個操作員需要一個多邊形並確認是否有文檔在其中,而不是相反。
0
我在JavaScript寫的代碼它工作正常,我
VAR polygonData =「43.64486433588385,-79.3791389465332; 43.64508171979899,-79.3930435180664; 43.63682057801007,-79.38437461853027; 43.63946054004705,-79.36819553375244; 43.652720712083266,-79.37201499938965; 43.65793702655821 ,-79.39111232757568; 43.64927396999741,-79.37222957611084" ;
var lat = '43 .64927396999741'; var lng =' - 79.37222957611084';
polySearch(polygonData,lat,lng);
function polySearch(polygonData,lat,lng){ var lat_long = lat +「,」+ lng;
var longitude_x = lng;
var latitude_y = lat;
var is_in_polygon=false;
var vertices_x=[];
var vertices_y=[];
var arr=polygonData.split(';');
for(var j=0; j<arr.length; j++){
var arr1=arr[j].split(',');
vertices_x.push(arr1[1]);
vertices_y.push(arr1[0]);
}
var points_polygon = vertices_x.length;
var isIn=isInPolygon(points_polygon, vertices_x, vertices_y, longitude_x, latitude_y);
if (isIn==1)
console.log('Which is in polygon');
else
console.log('Which is not in polygon');
function isInPolygon(points_polygon, vertices_x, vertices_y, longitude_x, latitude_y)
{
var i = 0;
var j = 0;
var c = 0;
for (i = 0, j = points_polygon-1 ; i < points_polygon; j = i++) {
var val="((("+vertices_y[i]+" > "+latitude_y+") != ("+vertices_y[j]+" > "+latitude_y+")) && ("+longitude_x+" < ("+vertices_x[j]+" - "+vertices_x[i]+") * ("+latitude_y+" - "+vertices_y[i]+")/("+vertices_y[j]+" - "+vertices_y[i]+") + "+vertices_x[i]+"))";
if(eval(val))c=!c;
}
return c;
}
}
0
對不起,只有過去的兩個環節,但我認爲這些解釋了什麼是應該更好做的話,我會:
相關問題
- 1. 查找給定的經度,緯度對位於MongoDB中的任何一個多邊形中
- 2. 檢查位置(緯度經度)是否在KML多邊形內
- 3. 檢查緯度/長度組合是否位於多邊形內
- 4. 點上多邊形(經度/緯度)
- 5. 是否有Java API來查找位置的經度和緯度?
- 6. 查找緯度/經度邊框
- 7. 確定緯度/經度是否在地球表面上的多邊形內
- 8. 有沒有辦法檢查一個位置(經度,緯度)是否在預定義的多邊形內?
- 9. 確定哪個是來自經緯度的多邊形
- 10. 檢查經緯度是否在諾基亞HERE地圖多邊形中
- 11. 給出了經緯度點,找到邊緣點和多邊形區域
- 12. 計算給定經度和緯度的地球凸包多邊形區域
- 13. 如何查找特定位置的經度和緯度?
- 14. 如何從給定的經度和緯度查找位置名稱?
- 15. 緯度經度自定義多邊形搜索MySQL
- 16. 用於查找位置數量的經度和緯度的JavaScript
- 17. 以PHP計算多邊形的緯度經度中心點
- 18. 從緯度/經度多邊形獲取邊界框
- 19. Python:找到點是否位於多邊形的邊界上
- 20. 如何在任何多邊形中查找90度角度
- 21. 檢測座標是否屬於經度和緯度邊界框
- 22. 查找經度和緯度
- 23. android經緯度位置查找器
- 24. 由於緯度和經度,找到感興趣的是位置
- 25. 檢查給定的經度和緯度是否在一組緯度和經度在sqlite
- 26. 查找多邊形落在經/緯度組合內的在MySQL/PostgreSQL的
- 27. 查找多個地址的經緯度
- 28. 如何轉換大熊貓經緯度點並查看它們是否落在某些邊界多邊形中?
- 29. 如何檢查給定的經度值是否在任何經度範圍內?
- 30. 從給定的緯度,經度和半徑值中查找java中的最大和最小緯度和緯度
[我有在這裏回答這個問題連同一個例子](https://stackoverflow.com/questions/46795397/find-if-given-longitude-latitude-pair-lies-in-any-of-the-po萊貢合mongodb的) –