我正在使用出色的Google Maps Shapes 库在我的地图上用四个给定点绘制椭圆,问题是椭圆打破了我设想的“矩形/正方形”的边界。
[编辑-更新图像]
有关它如何打破界限的示例,请参见此图:
粉红色的点是我想要的边界矩形(忽略绿色的)
我如何将这个椭圆保持在这些范围内(这里的目标是它与源自中心的蓝色/绿色和橙色线的外围相匹配。)
[编辑]
一些标记的位置,但这些会根据用户输入而改变
_s.OVAL_MARKERS = [
// Top
new google.maps.LatLng(51.583487043925224, -0.16044229844476376),
// Right
new google.maps.LatLng(51.58339184515312, -0.16013348842307096),
// Bottom
new google.maps.LatLng(51.58317916077958, -0.16026707625337622),
// Left
new google.maps.LatLng(51.583331361647325, -0.16064041535150864)
];
我用来创建椭圆的代码(为了清楚起见,为这个帖子修改了变量)
var b = new _g.LatLngBounds();
_s.OVAL_MARKERS.forEach(function (m) {
b.extend(m);
});
var major_axis = _gs.computeDistanceBetween(
b.getNorthEast(),
new _g.LatLng(
b.getSouthWest().lat(),
b.getNorthEast().lng()
)
) / 2;
var minor_axis = _gs.computeDistanceBetween(
new _g.LatLng(b.getCenter().lat(), b.getSouthWest().lng()),
new _g.LatLng(b.getCenter().lat(), b.getNorthEast().lng())
) / 2;