2016-06-01 5 views
-1

私はいくつかのマーカを持つGoogleマップを持っています。座標または各マーカがあり、ポリゴンを描画できる描画ツールがあります。私が描かれたポリゴンの内側のマーカーはので、ここで一つ以上の他のポリゴンと共有する私のロジックとコードでされているかどうかを検出しようとしているマーカが複数のポリゴンと共有されているかどうかを確認するGoogleマップ

ロジック:私はポリゴンを描画するとき、私はそれを置きます私はそれが他のポリゴンの内側にあるかどうかをチェックします。

は、ここに私のコードです:

私が持っている問題は、変数shared_markersは何マーカーが2つの以上のポリゴンで共有されていない場合でも、常にtrueを返すということです。助けてください?

function checkIfSharedMarkers(polygons, gmarkers){ 
    ... 
    var all_drawn_polygons_except_last_one = polygons.splice(-1,1); 
    ... 
} 

Array splice()方法は、元の配列を変更します。あなたは最後の1以外のすべてのポリゴンを取得しているところ おかげ

答えて

1

問題を引き起こしているコードの行があります。その行の前後で配列の長さを比較したところ、同じだったので、最後に描画されたポリゴンはまだall_drawn_polygons_except_last_oneです。スプライス(の代わりArray slice()を使用

var all_drawn_polygons_except_last_one = polygons.slice(0, polygons.length-1) 

)(これは保存され、元のpolygonsアレイを保証):私はその行を置き換えます。これにより、選択された要素が新しい配列に返され、all_drawn_polygons_except_last_oneに最後の要素が削除されました。

デモはthis Plunkrをご覧ください。

関連する問題