基礎知識前面做過介紹 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請聯系我微博