这是我可以为圆形场景提出的最佳解决方案。请注意,这不会在编辑圆时明确停止调整大小,但一旦用户释放调整大小,圆就会恢复到允许的最大大小。
根据上面的 chrismarx 和 zeusakm 注释,可能并不理想,但谷歌的 api 似乎没有任何本地方式可以在用户调整大小时设置严格的大小边界。
var shapeOptions = {
fillColor: '#ff0000',
fillOpacity: 0.50,
map: map, // your map
center: curLocation, // geo starting point
draggable: true,
editable: true,
radius: 30 // initial circle radius in meters
};
// Add the circle to the map.
newCircle = new google.maps.Circle(shapeOptions);
var maxRadius = 100; // whatever max size you want to dictate
google.maps.event.addListener(newCircle,'radius_changed',function(){
if (this.getRadius() > maxRadius) {
this.setRadius(maxRadius);
}
});
如果你想创建完全自定义的东西,这个解决方案也可能有用:
如何在谷歌地图上画圆时知道半径