获取谷歌地图上一组标记的东北角和西南角

get NE and SW corners of a set of markers on a google map

本文关键字:东北角 西南角 一组 谷歌地图 获取      更新时间:2023-09-26

我想在谷歌地图上获得一组标记的NE和SW角。在这里,我对每个标记进行迭代。谷歌或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);            
  }

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

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