2012-06-27 16 views
7

私は様々なマーカーを持つ地図を持っています。私は地図上に矩形を描き、矩形範囲内にあるマーカーを選択する必要があります。私はOK keymapzoomプラグインを実装しているHow to get markers inside an area selected by mouse drag?マップマーカーが選択した範囲内にあるかどうかを確認します

これまでのところ、私はここにいくつかの素晴らしい情報を発見しました。そう

$('#dispatcher').gmap3({action:'get'}).enableKeyDragZoom({ 
     boxStyle: { 
      border: "dashed black", 
      //backgroundColor: "red", 
      opacity: 0.5 
     }, 
     paneStyle: { 
      backgroundColor: "gray", 
      opacity: 0.2 
     } 
    }); 
var dz = $('#dispatcher').gmap3({action:'get'}).getDragZoomObject(); 
google.maps.event.addListener(dz, 'dragend', function (bnds) { 
    alert(bnds); 
}); 

のようにこれは私に警告(BNDS)から 次((緯度、長いを)、(緯度、長い))フォーマットを提供します。

この中にマーカーがあるかどうか確認する方法を知る必要がありますか?

もう1つの理由でマーカーを保存しているオブジェクトが既にあります。 like:

markers[name] = {}; 
    markers[name].lat = lati; 
    markers[name].lng = longi; 

これは役に立ちますか?

GLatLngBoundsとcontainsLatLng(latlng:GLatLng)の使用方法がわかりません。

答えて

3

Box/Rectangle Draw Selection in Google Maps

これは、はい...そのv3のAPIを

 google.maps.event.addListener(dz, 'dragend', function(e) { //important listener   
     for(var i = 0; i < markers.length; i++){ // looping through my Markers Collection  
     if(e.contains(markers[i].position)) 
      console.log("Marker"+ i +" - matched"); 
     }   
    }); 
10

あなたの質問にはMaps APIのv3バージョンが付いているので、そのバージョンを使用していると仮定します(v2は推奨されていません)。いくつかのクラスとメソッドの名前は、あなたの質問とは異なることに注意してください。

境界は、LatLngBoundsクラスで表されます。そのクラスのインスタンスに対してcontainsメソッドを実行して、ポイントがその境界内にあるかどうかを判断できます。すべてのあなたのマーカーを持つオブジェクトを持っている場合は

、あなたがそれらをループし、例えば、各マーカーを確認することができます。マーカーはときにオブジェクトにサイドノートでは

var bounds = new google.maps.LatLngBounds(sw, ne); 
for (var a in markers) { 
    if (bounds.contains(new google.maps.LatLng(markers[a].lat, markers[a].lng)) { 
     // marker is within bounds 
    } 
} 

、私は緯度経度のオブジェクトを格納しますそれらを作成します。そうすれば、必要な場所に作成する必要はありません。

+0

私の解決策でした。あなたの返信に感謝ピーター。 var bounds = new google.maps.LatLngBounds(bnds)を使用できるようにする必要があります。 ? –

+0

コンストラクタは引数southwestとnortheastの2つをとります。私が提供したリンクをクリックするだけです。 –

+0

私のbndsの出力からswとneの引数を取得するにはどうすればよいですか? –

関連する問題