【发布时间】:2016-02-19 07:24:38
【问题描述】:
这是将地图划分为相等区域的代码示例。当点击矩形中心的标记时,我如何才能在谷歌地图上只显示特定的矩形区域?单击标记后,所有其他区域不应出现在地图中。
function initialize() {
var myLatlng;
var mapOptions;
myLatlng = new google.maps.LatLng(29.98439980, -95.34140015);
mapOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(
document.getElementById("map-canvas"), mapOptions);
google.maps.event.addListenerOnce(map, 'idle', function() {
drawRectangle(map);
});
function drawRectangle(map) {
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var numberOfParts = 4;
var tileWidth = (northEast.lng() - southWest.lng()) / numberOfParts;
var tileHeight = (northEast.lat() - southWest.lat()) / numberOfParts;
for (var x = 0; x < numberOfParts; x++) {
for (var y = 0; y < numberOfParts; y++) {
var areaBounds = {
north: southWest.lat() + (tileHeight * (y+1)),
south: southWest.lat() + (tileHeight * y),
east: southWest.lng() + (tileWidth * (x+1)),
west: southWest.lng() + (tileWidth * x)
};
var area = new google.maps.Rectangle({
strokeColor: '#FF0000',
//strokeOpacity: 0.8,
strokeWeight: 2,
//fillColor: '#FF0000',
//fillOpacity: 0.35,
map: map,
bounds: areaBounds
});
var centerMark = new google.maps.Marker({
position: area.getBounds().getCenter(),
map: map,
title: area.getBounds().getCenter().toUrlValue(6)
});
}
}
}
}
google.maps.event.addDomListener(window, "load", initialize);
我已尝试使用地图边界代码,但它没有按预期工作。只有当我增加缩放时它才有效。但是每个区域的缩放可能不同。
var bounds = new google.maps.LatLngBounds();
bounds.extend(southLatitude, eastLongitude);
bounds.extend(northLatitude, westLongitude);
map.fitBounds(bounds);
【问题讨论】:
标签: google-maps google-maps-api-3