我需要使用仅有的四个坐标来绘制多边形,这四个坐标是在缩放级别为13的地图上加载的四个角落。另一方面,获取整个地图的坐标以向用户展示(用户在地图上搜索特定区域时可以用绘制多边形的方式,但如果他/她没有画多边形,则我想为他/她画一个投影地图大小的多边形,并显示结果。)
我需要使用仅有的四个坐标来绘制多边形,这四个坐标是在缩放级别为13的地图上加载的四个角落。另一方面,获取整个地图的坐标以向用户展示(用户在地图上搜索特定区域时可以用绘制多边形的方式,但如果他/她没有画多边形,则我想为他/她画一个投影地图大小的多边形,并显示结果。)
在缩放级别为13时创建地图
var map = new google.maps.Map(document.getElementById("map"), {
center: {lat: 51.561162, lng: -0.163331},
zoom: 13
});
然后使用map.getBounds()
来获取可见地图的LatLngBounds。
var bounds = map.getBounds();
您可以使用此方法获取西南和东北角的LatLng坐标:
var NECorner = bounds.getNorthEast();
var SWCorner = bounds.getSouthWest();
然后您可以使用这些来计算出另外两个角的坐标:
var NWCorner = new google.maps.LatLng(NECorner.lat(), SWCorner.lng());
var SECorner = new google.maps.LatLng(SWCorner.lat(), NECorner.lng());
最后,使用这些角落来为paths
数组绘制多边形:
var polygon = new google.maps.Polygon({
map: map,
paths: [NWCorner, NECorner, SECorner, SWCorner],
fillColor: 'red',
fillOpacity: 0.7
});
var bounds = googleMap!!.projection.visibleRegion.latLngBounds
var neCorner = bounds.northeast
var swCorner = bounds.southwest
var nwCorner = LatLng(neCorner.latitude, swCorner.longitude)
var seCorner = LatLng(swCorner.latitude, neCorner.longitude)