44

Googleマップの最新バージョンを使用します。経度と緯度を使用してマーカーを追加し、JavaScriptを使用してすべてのマーカーを含めるようにマップのズームレベルを自動的に調整するにはどうすればよいですか?

4

3 に答える 3

86

Google Maps API v3 は、LatLngBounds複数のオブジェクトを追加できるオブジェクトを提供しLatLngます。Map.fitBounds()ここで説明されているように、これを関数に渡すことができます。

部分的な例

var latlng = [
    new google.maps.LatLng(1.23, 4.56),
    new google.maps.LatLng(7.89, 1.01),
    // ...
]; 
var latlngbounds = new google.maps.LatLngBounds();
for (var i = 0; i < latlng.length; i++) {
    latlngbounds.extend(latlng[i]);
}
map.fitBounds(latlngbounds);
于 2010-10-11T11:54:16.043 に答える
25

緯度/経度のペアごとにマーカーオブジェクトをインスタンス化して、Google マップにマーカーを追加します。

var marker = new google.maps.Marker({
    position: currentLatLng, 
    map: map,
    title:"Title!"
}); 

マーカー コンストラクターのマップオプションは、新しい市場オブジェクトをマップに関連付けます。

マップをズームして新しいマーカーを含めるには、マップオブジェクトでfitBoundsメソッドを使用します。fitBounds は、latLngBoundsオブジェクトをパラメーターとして受け取ります。このオブジェクトには、境界を調整して新しい緯度/経度を含める便利なextendsメソッドがあります。したがって、単一の latLngBounds オブジェクトでextendを呼び出して、すべてのポイントをスピンするだけです。これにより、すべてのマーカーが含まれるように境界が拡張されます。これが完了したら、このオブジェクトをマップのfitBoundsメソッドに渡すと、ズームしてすべての新しいマーカーが表示されます。

于 2010-10-10T13:09:48.750 に答える
3

以下は私のためにトリックをしました

map.fitBounds(bounds);


 // add a zoom to the map


var listener = google.maps.event.addListener(map, 'idle', function()
        {
          if(map.getZoom() > 16)
            map.setZoom(17);
          google.maps.event.removeListener(listener);
        });

setZoom() メソッドで目的のズームを設定します。値が大きいほど、場所の詳細が広く表示され、値が小さいほど、場所の詳細が絞り込まれて縮小されます

于 2019-10-26T14:30:22.040 に答える