在 Google Javascript API 中缩放时街道会改变宽度

问题描述 投票:0回答:1

我尝试在样式化的地图上放置一些可以放大和缩小的矩形。我注意到每次我更改缩放级别时,例如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 我还注意到,矩形的笔划似乎比街道的笔划改变其重量的频率要低。有人可以解释这种行为的原因吗?

javascript google-api-javascript-client
1个回答
0
投票

地图视图故意这样做是为了使街道更加突出,因此无法更改它,它们将保持不一致的宽度以保持可访问性。如果您需要在缩放级别上保持一致的宽度,则地图 api 的唯一选择是使用卫星视图

© www.soinside.com 2019 - 2024. All rights reserved.