function initialize() {
var center = new google.maps.LatLng(-31.953159, 115.849915); //Perth
var options = {
center,
zoom: 20,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-div"), options);
var locations = [
{ id: 1, name: "Brisbane", coords: [-33.867396, 151.206854]},
{ id: 2, name: "Sydney", coords: [-27.46758, 153.027892] },
{ id: 3, name: "Perth", coords: [-31.953159, 115.849915] },
{ id: 4, name: 'Canberra', coords: [-35.279014, 149.124449] }
];
var markers = [];
var bounds = new google.maps.LatLngBounds();
locations.forEach(function (loc) {
var pos = new google.maps.LatLng(loc.coords[0], loc.coords[1]);
var marker = createMarker(map, pos);
markers.push(marker);
bounds.extend(pos);
});
map.fitBounds(bounds);
map.panTo(center); //change map center
google.maps.event.addListenerOnce(map, 'idle', function() {
resizeMapView(map, markers); //adjust viewport
});
}
function resizeMapView(map, markers) {
var mapBounds = map.getBounds(); // get bounds of the map object's viewport
var result = markers.filter(function(marker) { //determine wether map contains all the markers
if (!mapBounds.contains(marker.getPosition())) {
return true;
}
});
if (result.length > 0) {
var zoom = map.getZoom();
map.setZoom(zoom - 1);
resizeMapView(map, markers);
}
}
function createMarker(map,position) {
return new google.maps.Marker({
position: position,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map-div {
height: 100%;
}
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<div id="map-div"></div>
是'的Themarker'一部分'標記'數組? – duncan
不是在我的情況下,但如果你有解決方案,我可以使用 – XIMRX