0

MVC プロジェクトの地図に円のオーバーレイを追加しようとしていますが、ユーザーが地図をズームインまたはズームアウトしても円を同じサイズのままにしたいのですが、これが可能かどうかは誰にもわかりますか? 現在、これは私がサークルを表示して、それぞれに異なる色を与えている方法です。

var mapCircle;
var count = 0;

var colours = [];
@foreach (string s in arrColours)
{
    <text>colours.push('@s');</text>;
}

for (var point in map) {   
    var circle = {
        strokeColor: '#777777',
        strokeOpacity: 0.8,
        strokeWeight: 1,
        fillColor: colours[count],
        fillOpacity: 0.8,
        map: map,
        center: pointMap[point].coords,
        radius: 70000
    };
    mapCircle = new google.maps.Circle(circle);
    count++;
}

これらのポイント間をリンクするポリラインがあり、マップを拡大しても固定幅のままですが、拡大すると円が大きくなり、目的のために機能しません。マーカーに画像を使用できることはわかっていますが、できれば円だけを使用したいと思います。

ありがとう

4

1 に答える 1

0

可能ですが、おそらく簡単ではありません。マップのズームの変更を確認し、Great Circle Distance Formula を使用して円の半径をメートル単位でリセットする必要があります。

 google.maps.event.addListener(map, 'zoom_changed', resetRadius);

以下の質問と回答は、マップに対してこれを行う方法を説明していますが、円に対しては機能するはずです。Circle には getBounds() メソッドと setRadius() メソッドの両方があります。

Googleマップv3の「表示可能な」領域の半径

https://stackoverflow.com/a/3527136/1211981

于 2012-04-30T13:57:21.750 に答える