我正在尝试在Google地图上创建一个圆圈,但问题是: 我希望圆圈适合视图端口(地图区域)高度或宽度(以较小者为准)。
实际上,我想实现半径搜索,所以我发现这是一种更好的方法。如果我做错了或任何其他更好的方法,请告诉我。我正在使用Google maps API v3。
由于
答案 0 :(得分:0)
创建一个适合最短片段(到画布顶部或左侧)的圆圈。您需要包含Geometry library来计算距离。
// Get map bounds
var bounds = map.getBounds();
// Find map top border & distance to center
var mapTop = new google.maps.LatLng(bounds.getNorthEast().lat(), myLatLng.lng());
var distanceToTop = google.maps.geometry.spherical.computeDistanceBetween(myLatLng, mapTop);
// Find map left border & distance to center
var mapLeft = new google.maps.LatLng(myLatLng.lat(), bounds.getSouthWest().lng());
var distanceToLeft = google.maps.geometry.spherical.computeDistanceBetween(myLatLng, mapLeft);
// Get shortest length
var radius = distanceToTop < distanceToLeft ? distanceToTop : distanceToLeft;
var circle = new google.maps.Circle({
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35,
editable: true,
map: map,
center: myLatLng,
radius: radius
});