希望這個快速和骯髒的解決方案將幫助(這是API第3版)
<html>
<head>
<style>
#over {
position: absolute;
z-index:99999;
width: 250px;
height: 600px;
opacity: 0.7;
top: 0px;
border: 2px solid black;
left: 0px;
background: white;
}
</style>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Bounds</title>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var bounds;
var overlay;
//the witdh of your overlay (probably should get it dynamically
var overlayWidth = 250;
function initialize() {
var chicago = new google.maps.LatLng(41.875696,-87.624207);
var myOptions = {
zoom: 11,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);
}
function addMarker() {
maywood = new google.maps.LatLng(41.8823,-87.8487);
var marker = new google.maps.Marker({
position: maywood,
map: map
});
bounds = map.getBounds();
point = overlay.getProjection().fromLatLngToContainerPixel(maywood);
//point is under overlay
if (point.x<overlayWidth) {
//calculate offset by which to extend
offset = new google.maps.Point((point.x-overlayWidth),0);
extendByX = overlay.getProjection().fromContainerPixelToLatLng(offset);
//here you might want to check if all your existing markers will fit into new bounds before applying the new bounds
newBounds = new google.maps.LatLngBounds(extendByX,bounds.getNorthEast());
map.fitBounds(newBounds);
}
}
</script>
</head>
<body onload="initialize()">
<div id="over">OVERLAY</div>
<div id="map_canvas" style="width: 900px;height: 600px;"></div>
<input type="button" value="Add Marker & Expand Bounds" onclick="addMarker()">
</body>
</html>
感謝您的答覆,虐待不久對其進行評估,看看它的工作原理 – 2011-02-03 18:41:41