0
任何人誰使用地理圍欄與之反應本土?你是怎麼做到的?與使用地理圍欄陣營本地
我發現這個插件:https://www.npmjs.com/package/react-native-geo-fencing 這將基本上把你的經度和緯度,並確定是否是多邊形,但是說你有100個不同的多邊形,似乎看透了那些直到找到多邊形的服務表現真的很差循環你英寸
有沒有更優雅的方式來做到這一點?
任何人誰使用地理圍欄與之反應本土?你是怎麼做到的?與使用地理圍欄陣營本地
我發現這個插件:https://www.npmjs.com/package/react-native-geo-fencing 這將基本上把你的經度和緯度,並確定是否是多邊形,但是說你有100個不同的多邊形,似乎看透了那些直到找到多邊形的服務表現真的很差循環你英寸
有沒有更優雅的方式來做到這一點?
我不建議您採用這種封裝形式,它不是最新的,最後的提交是很久以前的事,而不是它,我用下面的算法來計算,一個點在我的多邊形或不。我的功能如下:
point = {latitude: 0, longitude: 0} // example of point
polygonArray = [
{
'latitude': 35.787184,
'longitude': 51.348038,
},
{
'latitude': 35.792754,
'longitude': 51.383057,
}
] // example of polygonArray
_isInPolygon = (point, polygonArray) => {
let x = point.latitude
let y = point.longitude
let inside = false
for (let i = 0, j = polygonArray.length - 1; i < polygonArray.length; j = i++) {
let xLat = polygonArray[i].latitude
let yLat = polygonArray[i].longitude
let xLon = polygonArray[j].latitude
let yLon = polygonArray[j].longitude
let intersect = ((yLat > y) !== (yLon > y)) && (x < (xLon - xLat) * (y - yLat)/(yLon - yLat) + xLat)
if (intersect) inside = !inside
}
return inside
}
如果點在plygon這個函數將返回true
,否則其返回fasle
。你也可以看到算法here的來源。
是不是對你有用嗎? –
那是有用的,但我的問題更多的是找出一種有效的方法來檢測地理柵欄。該方法這段代碼是設置,我將不得不遍歷了很多不同的多邊形來檢測我在籬笆上。如果是有道理的? – skipper