Apakah ada cara untuk mengubah simbologi untuk banyak lapisan di ArcMap atau ArcCatalog. Saya ingin mengubah simbologi beberapa lapisan sekaligus.
Apakah ada cara untuk mengubah simbologi untuk banyak lapisan di ArcMap atau ArcCatalog. Saya ingin mengubah simbologi beberapa lapisan sekaligus.
Jawaban:
Sunting Anda dapat menggunakan skrip ini yang disediakan oleh ESRI untuk menyelesaikan tugas yang ada (ide yang sama seperti di bawah ini):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: Lapisan di mana simbologi akan diterapkan.
Lapisan Fitur; Lapisan Raster; Lapisan TIN; Lapisan Analisis Jaringanin_symbology_layer: Simbologi dari layer ini diterapkan ke Layer Input.
Lapisan Fitur; Lapisan Raster; Lapisan TIN; Lapisan Analisis Jaringan
Atau perluas ini dalam bentuk skrip mandiri (pikirkan IDLE):
import arcpy
from arcpy import env
# Set the current workspace
env.workspace = "path/to/workspace"
# Set layer to apply symbology to
inputLayers = ["in_layer_first.lyr","in_layer_second.lyr","in_layer_third.lyr"]
# Set layer that output symbology will be based on
symbologyLayer = "in_symbology_layer.lyr"
# Apply the symbology from the symbology layer to the input layer
for layer in inputLayers:
arcpy.ApplySymbologyFromLayer_management (layer, symbologyLayer)
Intinya, Anda membuat layer simbologi (in_symbology_layer) yang Anda pertahankan sehubungan dengan desain / gaya. Kemudian Anda menyalin lapisan simbologi ke masing-masing lapisan Anda yang lain seperti yang tercantum dalam daftar isi Anda.
Jawaban Sebelumnya
Anda dapat menggunakan gaya dari lapisan saat ini di daftar isi / lapisan dan menerapkannya ke lapisan lain.
Untuk setiap lapisan berikutnya (di bawah lapisan gaya yang Anda tuju)> klik kanan> properti> simbologi> gaya impor dari lapisan lain
Saya memiliki masalah yang sama dan saya menemukan solusi lain. Ini sederhana dan sangat praktis, bahkan tidak perlu membuat file * .lyr.
Dalam kotak editor ArcGIS ModelBuilder, saya merancang proses di bawah ini:
Catatan: Ini mungkin tidak akan berfungsi jika Anda menggunakan sekaligus lapisan dari berbagai jenis geometri. Ini tidak berfungsi dengan baik jika Anda menggunakan sekaligus lapisan dengan nama yang sama. Saya tidak mencoba dengan lapisan non-vektor.
Script yang diekspor ke python model adalah:
# Import arcpy module
import arcpy
# Script arguments
Layers_to_symbolize = arcpy.GetParameterAsText(0)
Symbology_Layer = arcpy.GetParameterAsText(1)
# Local variables:
Symbolized_Layers = Layers_to_symbolize
# Process: Apply Symbology From Layer
arcpy.ApplySymbologyFromLayer_management(Layers_to_symbolize, Symbology_Layer)
Tepat sebelum pesan @ Harun, saya menggunakan informasi dari @Roy untuk membuat solusi saya sendiri yang bisa saya masukkan ke dalam skrip am ArcToolbox. Lihat di bawah:
# Import modules
import arcpy
#Get the current Map Document
mxd = arcpy.mapping.MapDocument("CURRENT")
# Script arguments
Template_Layer = arcpy.GetParameterAsText(0)
LayerList = arcpy.GetParameterAsText(1)
Layers_to_Symbolize = LayerList.split(";")
# Process: Apply Symbology From Layer
for UpdateLayer in Layers_to_Symbolize:
arcpy.AddMessage("Updating: " + UpdateLayer)
arcpy.ApplySymbologyFromLayer_management(UpdateLayer,Template_Layer)
# Refresh the Table of Contents to reflect the change
arcpy.RefreshTOC()
#Delete the MXD from memory
del mxd
Saya bisa melihat konsep ini sebagai alat potensial untuk 10.1 Python Add-in di bilah alat.
Saya telah datang dengan cara yang cukup sederhana untuk mengaktifkan simbologi beberapa layer sekaligus menggunakan toolbox yang ditautkan di bawah ini. Setelah Anda menambahkan kotak alat ini, seret dan lepas lapisan simbologi tunggal dan kemudian seret dan letakkan semua lapisan yang ingin Anda terapkan simbologi (target). Aturan umum tentang pencocokan tipe geografis (garis, titik, polis) kemungkinan berlaku di sini. Setelah alat berjalan, itu akan muncul karena tidak ada yang terjadi. Segarkan layar Anda (F5) - layar akan diperbarui dengan simbologi yang cocok. Klik pada layer untuk melihat propertinya dan klik "OK" dan simbol TOC akan diperbarui.
Unduh file Zip untuk kotak alat di sini.
Inilah skripnya jika itu lebih mudah:
import arcpy
# Script arguments
Target_Layers = arcpy.GetParameterAsText(0)
if Target_Layers == '#' or not Target_Layers:
Target_Layers = "LayersToBeChanged" # provide a default value if unspecified
Symbology_Layer = arcpy.GetParameterAsText(1)
if Symbology_Layer == '#' or not Symbology_Layer:
Symbology_Layer = "SymbologyLayer" # provide a default value if unspecified
# Local variables:
Output_Symbology = Symbology_Layer
# Process: Apply Symbology From Layer (3)
arcpy.ApplySymbologyFromLayer_management(Target_Layers, Symbology_Layer)