2017-09-17 6 views
0

リアクションネイティブでジオフェンスを使用している人は誰ですか?どうしたの?ジオフェンスをリアクションネイティブで使用する

私はこのプラグインを見つけました:https://www.npmjs.com/package/react-native-geo-fencing あなたはポリゴンを見つけるまで、基本的にあなたの経度と緯度を取り、あなたが多角形であるかどうかを判断していますが、100種類のポリゴンを持っていると言うだろう。つまり、それらすべてをループには本当に貧しい性能も思えますあなたはここにいる。

もっとエレガントな方法がありますか?

答えて

0

私はこのパッケージを使用することはお勧めしません。最新ではないし、最後のコミットはずっと前です。代わりに、以下のアルゴリズムを使用してポイントがポリゴン内にあるかどうかを計算します。 My機能は以下の通りです:ポイントはplygonである

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 
    } 

場合、この関数はtrueを返し、それ以外の場合はfasleを返します。また、アルゴリズムhereのソースを見ることができます。

+0

あなたにとって便利でしたか? –

+0

これは便利ですが、私の質問は、ジオフェンスを検出する効率的な方法を見つけることです。このコードが設定されている方法は、私が入っているフェンスを検出するために、多くの異なるポリゴンをループする必要があります。 – skipper

関連する問題