ArcPy中mapping常見函數及用法1


  arcpy的mapping模塊常見屬性方法總結
1.如何獲取當前地圖文檔:
方式:mxd = mapping.MapDocument("CURRTENT")引用本地或者網絡文檔(arcpy.mapping.Document("文件路徑"))
2.如何獲取當前圖層的圖層列表:
Eg:import arcpy.mapping as mapping
  mxd = mapping.MapDocument("CURRENT")
  layers = mapping.ListLayers(mxd)
  for lys in layers:
      print(lys.name)
3. 如何限制圖層列表:
Eg: import arcpy.mapping as mapping
  mxd = mapping,.MapDocument("CURRENT")
  # 獲取地圖文檔的數據框列表,搜索"數據框_name"的指定數據框
  for df in mapping.ListDataFrames(mxd):
      if df.name =="數據框_name":
    layers = mapping.ListLayers(mxd, 'Burg*', df)
    # for 循環,輸出地圖文檔中的每個圖層名稱
    for layer in layers:
        print(layer.name)
4.如何縮放到圖層:
DataFrame.zoomToSelectedFeatures(): 縮放至所有選擇要素的范圍(來自數據框的所有圖層)該方法就是縮放至所選要素
getSelectedExtent(): 該方法是Layer對象的,也是縮放至所選記錄的范圍。並且返回一個Extent()對象,可以作為參數傳給DataFeame.panToExtent()方法。
Eg: import arcpy.mapping as mapping
  mxd = mapping.MapDocument("CURRENT")
  df = mapping.ListDataFrames(mxd,"數據框_name")[0]
  layer = mapping.ListLayers(mxd,"數據框中圖層_name*",df)[0]
  df.extent = layer.getSelectedExtent()
5.如何改變地圖范圍:
DataFrame 類的extent屬性可以設置地圖的范圍
Eg: impot arcpy.mapping as mapping
  mxd = mapping.MapDocument("CURRENT")
  for df in mapping.ListDataFrames(mxd):
      if df.name == '數據框_name':
    layers = mapping.ListLayers(mxd, '數據框中指定圖層_name',df)
    for layer in layers:
       query in layers:
     layer.definitionQuery = query
     df.extent = layer.getExtent()
6.添加圖層和插入圖層:
添加圖層:df = mapping.ListDataFremes(定義的地圖文檔量)[0]
    layer = mapping.Layer(r"引用圖層文件.lyr文件的路徑")
    mapping.AddLayer(df, layer, "AUTO_ARRANGE")
插入圖層: df = mapping.ListDataFrames(mxd, "數據框_name")[0]
      refayer = mapping.Layers(mxd, "數據框中指定圖層_name", df)[0]
      inseryLayer = mapping.Layer(r"待插入的圖層路徑")
      mappin.InsertLayer(df, refLayer, insertLayer, "BEFORE或者AFTER")
7.如何查找地圖文檔或者圖層文件丟失的數據源:
Eg: mxd = mapping.mapDocument(r"地圖文檔的路徑")
  listBrokenDS = mapping.ListBrokenDataSources(mxd) # 獲取丟失數據源的圖層列表
  for layer in listBrokenDS:
      print(layer.name)
8.使用MapDocument.findAndReplaceWorkspacePaths()查找全局,用以查找丟失的數據源:
  mxd.findAndReplaceWorkspacePaths(r"數據源路徑1", r"數據源路徑2")
  mxd.saveAcopy(r"保存地圖文檔路徑")
    拓展:MapDocument.replaceWorkspacex()類似上法,本方法不允許用戶從一種工作空間類型轉換成另一種工作空間(上法則可以)

 

 

 

 

 

 


免責聲明!

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



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