简体   繁体   中英

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

I want to get NE and SW corners of a set of markers on a google map. Here I iterate over each marker. Does google or javascript provide a function that gets this with less iteration?

  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);            
  }

I would do it this way, add all the positions to an empty 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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM