Як зробити так, щоб "Карта книги" відображалася на сторінках з однаковою площею, але різні шари увімкнено / вимкнено?


9

У ESRI Map Map найкраще підходить для ряду функцій, які мають кожна своя сторінка. Це дозволяє вибрати функцію та генерувати сторінку з картографічною картою для кожної функції, включаючи будь-яку додаткову інформацію, яку ви хочете додати до кожної сторінки за допомогою динамічного тексту, діаграм тощо.

Чи є альтернатива, наприклад, серія сторінок, що показують точну ту саму область, але з різними шарами, включеними та вимкненими? У нас є документ про вдосконалення капіталу, який я повинен створити, показуючи межі міста на кожній сторінці. На одній сторінці перераховані всі поліцейські та пожежні частини, на іншій показані запропоновані водопровідні системи, на іншій показані швидкісні та автомобільні дороги та роботи, що проводяться поблизу або на них ... тощо. Ad nauseum.

Чи є спосіб налаштувати це так, що я НЕ ДОБРІТЬ створювати окремий MXD для кожної сторінки карти цього документа?


яка версія робочого столу? інструменти трохи змінилися у кожній версії.
Бред Несом

ArcGIS for Desktop Advanced 10.2.2
randomblink

Відповіді:


10

Я зміг це зробити, коли мав їх для ArcGIS 9.3, і це працює дуже добре. Я не знаю, чи це буде працювати з ArcGIS 10.0 або пізнішої версії, як зазначено на їхньому веб-сайті, але я б спробував це.

ArcMapBook

Редагування:
Це можна досягти, просто створивши прямокутну сторінку для кожного набору шарів, складених безпосередньо один на одного. Назвіть кожну сторінку окремо та призначте значення кожному шару, який відображатиметься у кадрі.
Також потрібно призначити значення атрибутів предметам, які відображаються лише на певних сторінках.
Потім використовуйте визначення сторінки для обмеження об'єктів назви сторінок.
Властивості шару на сторінці визначення запиту> визначення сторінки.
pagedef

Є можливість увімкнути відповідність / не збіг та назву поля.
Увімкнено
Існує досить нескінченна можливість кодування ваших даних для роботи в рамках.
Також якщо у вас є елементи, які ви хочете показати на всіх сторінках, вони просто не ввімкнуті.


1
Це все ще працює з 10.1, 10.2
Бред Несом

4

Я думаю, що ваші вимоги було б найпростіше та інтуїтивніше виконати, створивши єдину карту з усіма шарами, а потім написати простий скрипт Python, який використовує шар. Невидимий для перемикання шарів перед вивозом кожної сторінки за допомогою ExportToPDF .

PDFDocument може бути використаний для додавання сторінок до одного PDF-файлу.

Ця методика описана в блозі Esri під назвою " Комбінування сторінок, керованих даними", з Python та arcpy.mapping, який також включає код, наведений нижче.

Наприклад, ви можете створити тематичний атлас з декількох сторінок із зазначенням різної теми на кожній сторінці. Наступний приклад збільшує вибрану посилку, перемикає на видимість різних шарів та експортує макет для декількох тем, щоб створити звіт про посилку з картою ґрунту, картою затоплення та картою зонування:

import arcpy, os

#Specify output path and final output PDF
outPath = r”C:MyProjectoutput\”
finalPdf = arcpy.mapping.PDFDocumentCreate(outPath + “ParcelReport.pdf”)

#Specify the map document and the data frame
mxd = arcpy.mapping.MapDocument(r”C:MyProjectMyParcelMap.mxd”)
df = arcpy.mapping.ListDataFrames(mxd, “Layers”)[0]

#Select a parcel using the LocAddress attribute and zoom to selected
parcelLayer = arcpy.mapping.ListLayers(mxd, “Parcels”, df)[0]
arcpy.SelectLayerByAttribute_management(parcelLayer, “NEW_SELECTION”, “”LocAddress” = ’519 Main St’”)
df.zoomToSelectedFeatures()

#Turn on visibility for each theme and export the page
lyrList = ["Soils", "Floodplains", "Zones"]
for lyrName in lyrList:
     lyr = arcpy.mapping.ListLayers(mxd, lyrName, df)[0]
     lyr.visible = True

     #Export each theme to a temporary PDF and append to the final PDF
     tmpPdf = outPath + lyrName + “_temp.pdf”
     if os.path.exists(tmpPdf):
          os.remove(tmpPdf)
     arcpy.mapping.ExportToPDF(mxd, tmpPdf)
     finalPdf.appendPages(tmpPdf)

     #Turn off layer visibility and clean up for next pass through the loop
     lyr.visible = False
     del lyr, tmpPdf
del mxd, df, finalPdf

Чи існував би спосіб зробити це для великої кількості форм-файлів? Я ніколи не використовував Python, але я припускаю, що в lyrList є шари, які будуть прокручені. У мене є 121 різний рівень з такими іменами, як DA_1, DA_2, DA_3 тощо. Чи є спосіб завантажити їх, не називаючи їх окремо?
Мовчазний картограф

@TheSilentCartographer Ваш список пізніше може бути таким довгим, як вам подобається. У ньому потрібно буде містити імена тих, для кого ви хочете створити PDF-файл. Існують різні способи потрапляння цих імен до списку.
PolyGeo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.