基於高德地圖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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM