私はこれに対する解決策を探していましたが、成功していません。私がやりたいことは、半径と中心を指定して地図上に円を描くことです。図形用の Bing Maps Ajax Control 6.3のドキュメントでは、円について説明していません。地図上に円を描く方法はありますか?
どんな助けでも大歓迎です。
私はこれに対する解決策を探していましたが、成功していません。私がやりたいことは、半径と中心を指定して地図上に円を描くことです。図形用の Bing Maps Ajax Control 6.3のドキュメントでは、円について説明していません。地図上に円を描く方法はありますか?
どんな助けでも大歓迎です。
ニーズに関する非常に興味深い例を作成したMikeGarzaのブログ(Garzilla)を確認する必要があります:http://www.garzilla.net/vemaps/CircleDragHandle.aspx
円の位置を生成するためのサンプルコードは次のとおりです。
function buildCircle(latin, lonin, radius) {
var locs = new Array();
var lat1 = latin * Math.PI / 180.0;
var lon1 = lonin * Math.PI / 180.0;
var d = radius / 3956;
var x;
for (x = 0; x <= 360; x+=10) {
var tc = (x / 90) * Math.PI / 2;
var lat = Math.asin(Math.sin(lat1) * Math.cos(d) + Math.cos(lat1) * Math.sin(d) * Math.cos(tc));
lat = 180.0 * lat / Math.PI;
var lon;
if (Math.cos(lat1) == 0) {
lon = lonin; // endpoint a pole
}
else {
lon = ((lon1 - Math.asin(Math.sin(tc) * Math.sin(d) / Math.cos(lat1)) + Math.PI) % (2 * Math.PI)) - Math.PI;
}
lon = 180.0 * lon / Math.PI;
var loc = new VELatLong(lat, lon);
locs.push(loc);
}
return locs;
}
そして、ここでそれを地図に追加し、前の方法を使用するためのコード:
//Build circle
circle = new VEShape(VEShapeType.Polygon, circlePoints);
circle.HideIcon();
circle.SetLineWidth(2);
map.AddShape(circle);