Silverlight中在BingMap上画一个圆
时间:2011-03-11 来源:无名菜鸟
不解释,直接上代码:
private double rad(double d) { return d * Math.PI / 180; } //radius : km private void DrawCircle(Location center, double radius) { double EARTH_RADIUS = 6371; double lon = rad(center.Longitude); double lat = rad(center.Latitude); double d = radius / EARTH_RADIUS; polygon = new MapPolygon() { Fill = new SolidColorBrush(Colors.Red), Opacity = 0.6, }; polygon.Locations = new LocationCollection(); for (int i = 0; i < 360; i++) { Location location = new Location(); double bearing = rad(i); location.Latitude = Math.Asin(Math.Sin(lat) * Math.Cos(d) + Math.Cos(lat) * Math.Sin(d) * Math.Cos(bearing)); location.Longitude = ((lon + Math.Atan2(Math.Sin(bearing) * Math.Sin(d) * Math.Cos(lat), Math.Cos(d) - Math.Sin(lat) * Math.Sin(location.Latitude))) * 180) / Math.PI; location.Latitude = location.Latitude * 180 / Math.PI; polygon.Locations.Add(location); } MyMap.Children.Insert(0, polygon); }
相关阅读 更多 +