private void btnpolygon_Click(object sender,RoutedEventArgs e) { Mappolygon polygon = new Mappolygon(); polygon.Fill = new System.Windows.Media.solidColorBrush(System.Windows.Media.Colors.Red); polygon.strokeThickness = 5; polygon.Opacity = 0.7; polygon.Locations = new LocationCollection() { new Location(34.9294740237661,107.506492025863),new Location(37.7814222409819,105.979148275863),new Location(40.2865067209496,109.219382650863) }; this.myMap.Children.Add(polygon); }
Mappolygon就是Bing Maps提供的一个多边形类,如上代码块则实现了在地图上绘制一个三角形,主要就是利用三个点的坐标通过Locations进行定位绘制图层,效果如下:
相应的如果是绘制四变形也就是多一个顶点的多边形而已,示意代码如下:代码
private void btnQuad_Click( object sender, RoutedEventArgs e)
{
Mappolygon polygon = new Mappolygon();
// 填充颜色
polygon.Fill = new System.Windows.Media.solidColorBrush(System.Windows.Media.Colors.Red);
polygon.stroke = new System.Windows.Media.solidColorBrush(System.Windows.Media.Colors.Yellow);
polygon.strokeThickness = 5 ;
polygon.Opacity = 0.7 ;
polygon.Locations = new LocationCollection() {
new Location( 34.9294740237661 , 107.506492025863 ),
new Location( 37.7814222409819 , 105.979148275863 ),
new Location( 40.2865067209496 , 109.219382650863 ),
new Location( 29.8104584489867 , 115.943992025863 )};
this .myMap.Children.Add(polygon);
}
除了上面通过代码动态绘制多边形外,也可以通过Map控件进行配置,如下示例:代码
<m:Map CredentialsProvider="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU" x:Name="myMap"
Center="34.9294740237661,107.506492025863" ZoomLevel="4" NavigationVisibility="Collapsed">
<m:Mappolygon Locations="30,108 39,102 34.88,90.021" Fill="Red" strokeThickness="5" Opacity="0.8"></m:Mappolygon>
</m:Map>
如上图中红色的三角形就是通过初始化配置进去的,平时二次开发中使用动态创建相对较多。上面提到四边形分菱形和矩形,Bing Maps 也提供了专门绘制矩形和菱形的类,比如矩形是Rectangle类。二次开发中经常会涉及到需要自己绘制一些图形在地图上,或者是在地图上动态选择绘制,了解绘制图形的基本原理后实现这些都非常简单,实际上就是给Map控件添加一个子元素,也可以理解为Silverlight的UIElement。希望通过本文抛砖引玉,欢迎大家前来一起讨论交流,共同学习进步。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。