我尝试在样式化的地图上放置一些可以放大和缩小的矩形。我注意到每次我更改缩放级别时,例如17.5 到 17.6,街道的宽度正在改变,因此矩形相对于街道的位置也发生了变化。
代码:
地图
var latlng = new google.maps.LatLng(lat, lng);
var myOptions = {
zoom: zoom,
center: latlng,
disableDefaultUI: true,
scrollwheel: false,
disableDoubleClickZoom: true,
styles: [
{
featureType: 'all',
stylers: [{visibility: "off"}]
},
{
featureType: 'landscape',
stylers: [{color: "#000000"}, {visibility: "on"}]
},
{
featureType: 'road',
elementType: 'geometry',
stylers: [{color: '#ffffff'}, {visibility: "on"}, {weight: 2}]
}
]
};
map = new google.maps.Map(document.getElementById('map'), myOptions);
长方形
var rectangle = new google.maps.Rectangle({
fillColor: '#FF0000',
fillOpacity: 1,
strokeColor: '#FF0000',
strokeWeight: 2,
strokeOpacity: 1,
map: map,
bounds: {
north: lat1,
south: lat2,
west: lng1,
east: lng2
}
});
我希望矩形在所有缩放级别都位于街道的同一位置。这可以吗?
PS。它看起来是这样的: 缩放=19.5 vs 缩放=19.6
编辑: 我忘了提及,只有在超过 0.5 时才会发生阶梯式宽度变化 - 如果我将缩放从
19.2
更改为 19.3
,则位置没有差异。
参见示例:
缩放=21.1 vs 缩放=21.3
我还注意到,矩形的笔划似乎比街道的笔划改变其重量的频率要低。有人可以解释这种行为的原因吗?
地图视图故意这样做是为了使街道更加突出,因此无法更改它,它们将保持不一致的宽度以保持可访问性。如果您需要在缩放级别上保持一致的宽度,则地图 api 的唯一选择是使用卫星视图