在谷歌地图上获取一组标记的NE和SW角

时间:2014-09-21 16:21:51

标签: javascript google-maps bounds

我想在谷歌地图上获得一组标记的NE和SW角落。在这里,我迭代每个标记。 google或javascript是否提供了一个以较少迭代次数获得此功能的函数?

  function fnSetBounds(){         
    var lowLat = 90;
    var highLat = -90;
    var lowLng = 180;
    var highLng = -180;

    for (var i = 0; i < myMarkers.length; i++) {

        var myLat = myMarkers[i].position['k'];
        var myLng = myMarkers[i].position['B'];

        // catch low LAT                                
        if (lowLat  >  myLat){
            lowLat  =   myLat; 
        }               
        // catch high LAT
        if (highLat <  myLat) {
            highLat =  myLat; 
        }

        // catch low LNG
        if (lowLng  >  myLng){
            lowLng  =   myLng; 
        }               
        // catch high lng               
        if (highLng <  myLng) {             
            highLng =  myLng; 
        }
    }                   
    var southWestCorner = new google.maps.LatLng(highLat, lowLng);
    var northEastCorner = new google.maps.LatLng(lowLat, highLng);
    var bounds = new google.maps.LatLngBounds();            

    bounds.extend(southWestCorner);         
    map.fitBounds(bounds);

    bounds.extend(northEastCorner);         
    map.fitBounds(bounds);            
  }

1 个答案:

答案 0 :(得分:1)

我会这样做,将所有位置添加到空边界:

function fnSetBounds(){         
  var bounds = new google.maps.LatLngBounds();
  for (var i = 0; i < myMarkers.length; i++) {
    bounds.extend(myMarkers[i].getPosition());
  }                   
  map.fitBounds(bounds);
}