I have multiple points on a Google map that i need to pinpoint.
How would i find the two points that are farthest away from each other and get my map center an zoom accordingly?
Thanks in advance!
//global imports and other vars
import com.google.maps.LatLng;
import com.google.maps.LatLngBounds;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.controls.ZoomControl;
import com.google.maps.controls.PositionControl;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.overlays.MarkerOptions;
import com.google.maps.overlays.Marker;
import com.google.maps.InfoWindowOptions;
import com.google.maps.MapMouseEvent;
// Create The Map
var map:Map = new Map();
map.key = "ABQIAAAAZ4-AGoBfSWF--cPxVyDw6xQQ8YLcfBN-1RQFlkdO0I7IxZjd6BRlMLFMneQgUlcJXEpgttoMjsUpxw";
map.setSize(new Point(stage.stageWidth, stage.stageHeight));
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);
var i = 0;
function onMapReady(event:MapEvent):void {
var latlngbounds = new LatLngBounds();
map.setCenter(new LatLng(39.019184,-108.544922),3, MapType.HYBRID_MAP_TYPE);
map.addControl(new ZoomControl());
map.addControl(new PositionControl());
map.addControl(new MapTypeControl());
function createMarker(latlng:LatLng, number:Number, tip, myTitle, myContent):Marker {
var LA_i:Marker = new Marker(
latlng, new MarkerOptions({icon:new marker(),hasShadow: true, tooltip: ""+tip
}));// closed new marker
LA_i.addEventListener(MapMouseEvent.CLICK, function(event:MapMouseEvent):void {
trace ("marker "+tip+" clicked!");
});// closed on click event listener
return LA_i;
var i = new LatLng(latlng);
latlngbounds.extend( i );
return i;
i = i+1;
}// end function createMarker
var listings = "39.170147, -108.723128 | 39.019184, -108.544922 | 39.1046810,-108.5621000 | 37.3960539,-108.6274138 | 38.4783198,-107.8761738 | 38.2183239,-108.5687033 | 38.7422062,-108.0689582 |";
var listings_array = listings.split("|");
// loop through each listing an create a marker
for(var LA_i=0; LA_i<listings_array.length-1; LA_i++){
var listingInfo = listings_array[LA_i].split(",");
var latlng:LatLng = new LatLng(listingInfo[0], listingInfo[1]);
var tip = LA_i;
var myTitle:String = "";
var myContent:String = "";
map.addOverlay(createMarker(latlng,LA_i, tip, myTitle, myContent));
}//end main listing for loop
//center map and set zoom
map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );
// this function gets the center between two lat lng //
// this works for just two markers
/*var bounds:LatLngBounds = new LatLngBounds( new LatLng(39.170147,-108.723128), new LatLng(39.019184,-108.544922));
map.setCenter(bounds.getCenter());
map.setZoom(map.getBoundsZoomLevel(bounds)-1);*/
}// end on map ready
Just copy and paste into root time line to test