網(wǎng)站集約化建設(shè)背景seo 技術(shù)優(yōu)化
地圖是ArcGIS Pro中的基礎(chǔ)起點,也是大多數(shù)工程的基礎(chǔ)。主要用于顯示表示空間數(shù)據(jù)的圖層。
一、地圖(Map)的基本操作示例
1、獲取當(dāng)前地圖
var map = MapView.Active.Map;
2、獲取一級圖層
var lys = map.Layers;
用于獲取地圖中的單一圖層,以及圖層組。但不包括圖層組下面的圖層。
3、獲取所有圖層
var lys = map.GetLayersAsFlattenedList();
【GetLayersAsFlattenedList()】方法用于獲取地圖中的所有圖層。
4、獲取單一類型的圖層
var lys = map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
在【GetLayersAsFlattenedList()】方法加上【OfType】則會對獲取的圖層按類型進(jìn)行篩選。如【FeatureLayer】代表要素圖層,【GroupLayer】代表圖層組等。
5、獲取獨立表
var lys = map.GetStandaloneTablesAsFlattenedList();
【GetLayersAsFlattenedList()】方法用于獲取地圖中的所有獨立表。
6、查找圖層
var lys = map.FindLayers(LayerName);
【FindLayers(LayerName)】方法用于按圖層名查找相應(yīng)圖層,注意這里的LayerName不支持模糊查找。
7、獲取坐標(biāo)系
var sr = map.SpatialReference;
Map的【SpatialReference】屬性返回地圖的坐標(biāo)系。
8、移動圖層
// 獲取當(dāng)前地圖var map = MapView.Active.Map;// 獲取第一個圖層var ly = map.GetLayersAsFlattenedList();// 移動到最后的位置QueuedTask.Run(async () =>{map.MoveLayer(ly[0], -1);});
【MoveLayer(Layer, index)】方法用于按標(biāo)簽位置移動圖層的位置。
這里演示的是將地圖中的第1個圖層移動到最后的位置。
9、移除所有圖層
// 獲取當(dāng)前地圖var map = MapView.Active.Map;// 獲取所有圖層var lys = map.GetLayersAsFlattenedList();// 移除所有圖層QueuedTask.Run(async () =>{map.RemoveLayers(lys);});
【RemoveLayers(lys)】方法用于移除圖層列表。
【RemoveLayer(ly)】方法用于移除單一圖層。
這里演示的是用【RemoveLayers(lys)】方法移除地圖中的所有圖層。
10、將要素添加到當(dāng)前地圖
// 獲取當(dāng)前地圖var map = MapView.Active.Map;//打開對話框OpenItemDialog openDlg = new OpenItemDialog(){Title = "選擇要素", //打開對話框標(biāo)題Filter = ItemFilters.FeatureClasses_All, //類型篩選};//打開對話框bool? ok = openDlg.ShowDialog();//如果沒有選擇內(nèi)容,則返回if (!ok.HasValue)return;// 獲取返回的要素路徑var fc = openDlg.Items.First().Path;// 按返回的要素路徑將要素添加到當(dāng)前地圖中Uri uri = new Uri(fc);QueuedTask.Run(async () =>{LayerFactory.Instance.CreateLayer(uri,map);});
【LayerFactory.Instance.CreateLayer()】方法用于將要素添加到當(dāng)前地圖。
需要先將路徑轉(zhuǎn)換成Uri。
11、保存地圖
// 獲取當(dāng)前地圖var map = MapView.Active.Map;//打開對話框SaveItemDialog saveDlg = new SaveItemDialog(){Title = "保存地圖為", //打開對話框標(biāo)題Filter = ItemFilters.Maps_All, //類型篩選};//打開對話框bool? ok = saveDlg.ShowDialog();//如果沒有選擇內(nèi)容,則返回if (!ok.HasValue)return;// 按返回的工程路徑保存地圖QueuedTask.Run(async () =>{map.SaveAsFile(saveDlg.FilePath, true);});
【SaveAsFile()】方法用于將地圖保存為地圖文件。
二、工程文件分享
最后,放上工程文件的鏈接:
MapManagerhttps://pan.baidu.com/s/1JqITwFtqSFjww5JTOM0RZQ?pwd=4myr