Использование Data Driven Pages (DDP) для создания набора карт с одинаковым экстентом, но разными слоями?

9

Можно ли использовать инструмент Data Driven Pages (DDP) в ArcMap или ArcPy для создания набора карт с одинаковым экстентом, но с разными слоями?

Чтобы уточнить, я регулярно делаю большие наборы карт для проектов, все в одном и том же месте, часто с одними и теми же базовыми уровнями, но измененными, чтобы сосредоточиться на различных аспектах для соответствующего раздела отчета, таких как места мониторинга, землепользование, ключевые функции и т. Д., Которые все требует отдельного .mxds для создания и обслуживания.

Система типов DDP позволила бы мне использовать динамический текст и обеспечить стандартный шаблон / выходные данные, а также значительно упростила бы жизнь при обновлении общего номера рисунка или комментария, поскольку отчет пишется в одном .mxd, а не в нескольких для клиент.

Я использую ArcMap 10.1, но, прочитав интерактивную справку ArcGIS DDP, я предполагаю, что это необходимо сделать с помощью ArcPy, поскольку я не смог понять, как это сделать в ArcMap. Я знаю, что в QGIS есть плагин Atlas , хотя я не так хорошо знаком с его возможностями, но с радостью использовал бы его в качестве альтернативы.

MAJ742
источник
1
Я думаю, что вы ищете сценарии изменений документа карты в Python с использованием набора инструментов arcpy.mapping . См. Ссылку на создание полных картографических книг , а точнее в документе «Простая справочная серия картографических книг».
RyanKDalton

Ответы:

4

Вот мое мышление в псевдокоде: вы получите свой MapDocument, затем ListDataFrames, затем ListLayers. Затем вы сможете перебирать слои, переключать свойство видимости слоя на ExportToPDF (или что-то еще), затем снова выключать видимость и переходить к следующему слою. Если вы хотите оставить определенные слои в качестве базовых слоев, возможно, вы могли бы сгруппировать те, которые вы хотите изменить, для каждой карты и переключать видимость только для них, проверяя IsGroupLayer = True? Может быть, у кого-то еще есть пример кода ...

neuhausr
источник
Я никогда не находил для этого встроенного решения Arc, но коллега сейчас разработал скрипт на python для процесса, который следует базовой предложенной вами структуре. Сценарий использует группы для создания новой страницы в формате PDF и может быть объединен с DDP для создания карты с набором карт для нескольких сайтов.
MAJ742
5

Метод без кода

Когда вы включаете управляемые данными страницы, вы можете указать запрос определения, который зависит от номера страницы. Просто используйте этот запрос, чтобы скрыть все объекты от слоев, которые вы не хотите показывать.

  1. Настройте фреймы карты так, чтобы они находились в том же месте, но с полем для номера страницы. Настройте управляемые данными страницы с номером страницы в качестве поля имени.
  2. Если вы хотите, чтобы слой был включен для конкретной страницы, добавьте атрибут «page» в ее таблицу и установите соответствующий номер страницы.
  3. Добавьте запрос определения страницы к определенному слою с помощью только что созданного поля.

Когда страница выбрана, нужные слои станут видимыми на основе запроса определения страницы.

Мэтью Снейп
источник
2
Я думаю, что запросы определения страниц в некоторых случаях работают хорошо, но проблема в том, что вам нужно добавить соответствующий номер страницы к каждому атрибуту в таблице данных, и вы не можете показать одну и ту же функцию на нескольких страницах, так как вы можете ссылаться только на одну страницу. страница за раз
MAJ742