私は素晴らしいGoogle Maps Shapes ライブラリを使用して、4 つのポイントでマップ上に楕円を描画しています。問題は、楕円が私が想定した「長方形/正方形」の境界を破っていることです。
[編集 - 更新された画像]
境界を破る方法の例については、次の図を参照してください。
ピンクの点は、私が望む外接する長方形です (緑のものは無視してください)
この楕円をそれらの境界内に保つにはどうすればよいですか (ここでの目標は、中心から始まる青/緑とオレンジの線の外側に一致することです)。
[編集]
いくつかのマーカーの配置ですが、これらはユーザーの入力に応じて変化します
_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;