在Gmap API V3中绘制缩放到缩放级别的矩形

时间:2014-05-31 10:05:14

标签: google-maps-api-3

目前我有一个函数可以使用以下代码绘制一个约2km大的矩形:

var radius = 0.02;
        var c = Math.cos(location.lat()* Math.PI / 180);
        rectangle.setBounds(new google.maps.LatLngBounds(
            new google.maps.LatLng(location.lat()-c*radius/2, location.lng()-radius/2),
            new google.maps.LatLng(location.lat()+c*radius/2, location.lng()+radius/2)));

        rectangle.setMap(map);

在缩放级别1时,矩形太小,在缩放级别18时太宽。

我希望矩形大小是地图大小的百分比,以便在创建时无论缩放级别如何都始终可见。你能帮我找一些有关如何实现它的信息吗?

1 个答案:

答案 0 :(得分:2)

编辑:我找到了一个解决方案:

var scale = Math.pow(2,map.getZoom());

        rectangle.setBounds(new google.maps.LatLngBounds(
            new google.maps.LatLng(((location.lat()* scale) - 50)/ scale, ((location.lng()* scale) - 75)/ scale),
            new google.maps.LatLng(((location.lat()* scale) + 50)/ scale, ((location.lng()* scale) + 75)/ scale)));

        rectangle.setMap(map);

如果它对其他人有用