Už jste chtěli vyzkoušet okno Python v ArcMapu <\/SPAN>Python window<\/A>, ale nejste si jistí, jak začít? No, pět níže uvedených ukázek kódu je skvělý nástroj, jak se seznámit s Python window a <\/SPAN>arcpy.mapping module<\/A>. Udělejte si kopii souboru MXD a přesuňte ji někam, kde můžete tyto ukázky vyzkoušet. Brzy uvidíte, jak užitečné mohou být některé triky v Pythonu pro úkoly správy map.<\/SPAN><\/P>Každá ukázka níže funguje s ArcMap 10.x, existujícím mapovým dokumentem (soubor MXD), arcpy.mapping module a Python 2.x.<\/LI><\/UL>Nemusíte znát žádnou syntaxi Pythonu, abyste tyto ukázky použili. Jednoduše zadejte kód do Python window a podívejte se na výsledky.<\/P>Ukázka 1: Kontrola dotazů definice vrstvy<\/STRONG><\/SPAN><\/P>Předpokládejme, že potřebujete zkontrolovat, zda některá z vrstev ve vašem mapovém dokumentu má aplikovaný dotaz definice, a pokud ano, zobrazit tyto dotazy definice. Otevírání dialogového okna Vlastnosti vrstvy pro každou vrstvu je otravné.<\/P> <\/P>Řešení: Otevřete místo toho Python window a spusťte níže uvedený kód. Název a dotaz definice všech vrstev mapy bude „vytištěn“ (tj. zobrazen v Python window).<\/P>
<\/P>Rozbor kódu<\/STRONG><\/SPAN><\/P>První řádek kódu vytvoří proměnnou nazvanou mxd<\/STRONG><\/SPAN>, která odkazuje na otevřený mapový dokument pomocí klíčového slova <\/SPAN>CURRENT keyword<\/A>.<\/LI>Funkce ListLayers<\/A> se používá k vytvoření seznamu všech vrstev v mapovém dokumentu a cyklus for<\/STRONG><\/SPAN> slouží k iteraci přes každou vrstvu v mapě.<\/LI>Třída Layer class<\/A> má mnoho properties<\/A>, ke kterým lze přistupovat, včetně dotazu definice vrstvy. Protože ne všechny typy vrstev podporují všechny vlastnosti, metoda supports<\/A> se používá k testování, které vlastnosti vrstva podporuje. <\/LI>Poslední řádek kódu vytiskne (zobrazí) název každé vrstvy a její dotaz definice.<\/LI>
Ukázka 2: Oprava přerušených odkazů<\/STRONG>
Někdy jste pravděpodobně přesunuli mapová data z jednoho pracovního prostoru do druhého. Už jste někdy viděli ty děsivé červené vykřičníky?

Pokud se cesta ke vrstvám mapy změnila, můžete pomocí několika řádků kódu rychle najít starou cestu pracovního prostoru a nahradit ji novou cestou pracovního prostoru pro všechny vrstvy a tabulky ve vašem mapovém dokumentu najednou. Spusťte následující řádky kódu v Python window (nezapomeňte aktualizovat cesty tak, aby odpovídaly vašim starým a novým pracovním prostorům).

Rozbor kódu
- První řádek kódu je stejný jako v předchozím příkladu, vytváří proměnnou mxd, která odkazuje na otevřený mapový dokument.
- Metoda
findAndReplaceWorkspacePaths se používá k vyhledání vrstev, které mají starý pracovní prostor (první parametr) a aktualizaci pracovního prostoru na nový pracovní prostor (druhý parametr) pro všechny vrstvy a tabulky v mapovém dokumentu.
Funkce RefreshActiveView se používá k zobrazení změn v obsahu tabulky a na mapě.
Ukázka 3: Identifikace vrstev s přerušeným zdrojem dat
Když už mluvíme o těch červených vykřičnících, můžete také použít arcpy.mapping k vytištění vrstev, které mají přerušené odkazy pomocí níže uvedeného kódu.

Rozbor kódu
- První řádek kódu vytvoří proměnnou nazvanou mxd, která odkazuje na otevřený mapový dokument, stejně jako výše uvedené příklady.
- Stejně jako první příklad funkce ListLayers vytvoří seznam všech vrstev v mapovém dokumentu.
- Dále se používá cyklus for, který iteruje přes každou vrstvu v mapě a vypisuje název a vlastnost isBroken vrstvy pro každou z nich.
Ukázka 4: Inventura zdrojů dat vrstev
Pokud potřebujete znát zdroj dat všech vrstev ve vaší mapě, ale nechcete otevírat dialogové okno Vlastnosti vrstvy pro každou z nich, jednoduše spusťte níže uvedené řádky kódu v Python window, abyste vytiskli názvy a cestu pracovního prostoru vrstev.

Rozbor kódu
- Stejně jako ve všech výše uvedených příkladech první řádek kódu vytvoří proměnnou mxd, která odkazuje na otevřený mapový dokument (už to začínáte chápat?).
- Znovu funkce ListLayers vytvoří seznam všech vrstev v mapovém dokumentu, který můžete projít pomocí cyklu for.
V tomto příkladu vytisknete vlastnosti vrstvy name a workspacePath pro každou vrstvu ve vaší mapě. Protože ne všechny vrstvy mají cestu pracovního prostoru (například webové služby), používá se metoda supports .
Ukázka 5: Sloučení PDF dokumentů
Třeba vytváříte knihu map nebo máte několik PDF dokumentů, které potřebujete sloučit (například váš výkaz výdajů a účtenky). Můžete použít arcpy.mapping a třídu PDFDocument class, abyste manipulovali s PDF dokumenty. Spusťte níže uvedený kód ke sloučení dvou PDF dokumentů.

Rozbor kódu
- První řádek kódu vytvoří proměnnou nazvanou pdf, která odkazuje na existující PDF dokument.
- Metoda appendPages se používá k přidání stránek z jednoho PDF na konec referencovaného PDF.
- K uložení změn se používá metoda saveAndClose.
Chcete se dozvědět více?
Pokud byste se chtěli dozvědět více o práci s ArcMap Python window nebo o vytváření samostatných skriptů v Pythonu, doporučujeme tyto zdroje:
Tento příspěvek přispěla instruktorka Esri @Brittney White.