基于高德地图Windows Phone API 快速开发地图相关APP(二)

基础知识前面做过介绍 http://www.cnblogs.com/piaocz/archive/2012/08/14/2638097.html

 

下面说说 分层管理覆盖物的功能:

 

我们把不同的覆盖物 添加在不同的层上,可以进行快速有效的管理。

例如:我有一些点 添加在层1 上,我可以批量控制显示或者隐藏,或者一起调整视野。而层2上的点不受影响!

Com.AMap.Maps.Api.MapLayer

主要由这个类来控制。

 

我们来弄2个层管理数据(可以N层):

 <AMap:MMap x:Name="map" ToolBar="Visible" Zoom="10" Center="116.397428, 39.90923">

                <AMap:MapLayer x:Name="layer1"></AMap:MapLayer>

                <AMap:MapLayer x:Name="layer2"></AMap:MapLayer>

            </AMap:MMap>

 

 

 1 /// <summary>

 2         /// 层一添加覆盖物

 3         /// </summary>

 4         /// <param name="sender"></param>

 5         /// <param name="e"></param>

 6         private void Layer1AddOverlay_Click(object sender, RoutedEventArgs e)

 7         {

 8             this.layer1.Children.Add(new MMarker(map.Center));

 9             this.layer1.Children.Add(new MMarker(new MLngLat(map.Center.LngX+0.1,map.Center.LatY+0.1)));

10             this.layer1.Children.Add(new MMarker(new MLngLat(map.Center.LngX + 0.21, map.Center.LatY + 0.21)));

11             this.layer1.Children.Add(new MMarker(new MLngLat(map.Center.LngX + 0.31, map.Center.LatY + 0.1)));

12             

13             this.layer1.SetOverlaysFitView();

14         }
this.layer1.SetOverlaysFitView();//将该层的所有可视的(Visible)并添加到该图层的Overlay对象调整在视野范围内

 1 /// <summary>

 2         /// 层1 所有覆盖物的显示和隐藏

 3         /// </summary>

 4         /// <param name="sender"></param>

 5         /// <param name="e"></param>

 6         private void Layer1ShowOrHidden(object sender, RoutedEventArgs e)

 7         {

 8             Button button = sender as Button;

 9             if (this.layer1.Visibility == System.Windows.Visibility.Visible)

10             {

11                 this.layer1.Visibility = System.Windows.Visibility.Collapsed;

12                 button.Content = "显示层1";

13             }

14             else

15             {

16                 this.layer1.Visibility = System.Windows.Visibility.Visible;

17                 button.Content = "隐藏层1";

18             }

19         }

 

 1  /// <summary>

 2         /// 层2 添加覆盖物

 3         /// </summary>

 4         /// <param name="sender"></param>

 5         /// <param name="e"></param>

 6         private void Layer2AddOverlays(object sender, RoutedEventArgs e)

 7         {

 8             MLngLatCollection mcs = new MLngLatCollection();

 9             mcs.Add(map.Center);

10             mcs.Add(new MLngLat(map.Center.LngX + 0.21, map.Center.LatY + 0.11));

11             mcs.Add(new MLngLat(map.Center.LngX + 0.31, map.Center.LatY + 0.231));

12             mcs.Add(new MLngLat(map.Center.LngX + 0.11, map.Center.LatY + 0.431));

13             mcs.Add(new MLngLat(map.Center.LngX + 0.21, map.Center.LatY + 0.231));

14             this.layer2.Children.Add(new MPolyline(mcs));

15             this.layer2.Children.Add(new MMarker(map.Center) { IconURL = "/Samples/051.png" });

16             this.layer2.Children.Add(new MMarker(new MLngLat(map.Center.LngX + 0.31, map.Center.LatY + 0.131)) { IconURL = "/Samples/051.png" });

17             

18         }

 

1 /// <summary>

2         /// 层2 添加覆盖物视野调整

3         /// </summary>

4         /// <param name="sender"></param>

5         /// <param name="e"></param>

6         private void Layer2OverlaysFitView(object sender, RoutedEventArgs e)

7         {

8             this.layer2.SetOverlaysFitView();

9         }

 

分层管理还有很多空间可以自由发挥,功能我就先说到这里吧




更多高级功能我在以后会提及!

开发中有任何问题和bug请联系我微博

 http://weibo.com/piaochunzhi

 

你可能感兴趣的:(windows phone)