НА ГЛАВНУЮ СТРАНИЦУ

КАК ПОСТРОИТЬ ЛИСТЫ ДЛЯ РАЗБИВКИ

Для разбивки карты на листы по наиболее популярной методике, нужно, разумеется, эти самые листы построить. Причем не абы как, а в виде шейп-файла. В ArcView, как известно, нету инструментов для сколько-нибудь развитого редактирования шейп-файлов, типа тех, которых полно в Corel Draw - ну там выровнять объекты, размножить и т.п. В версии 3.2 для макета печати (Layout) есть, правда, выравнивание, но нам-то нужно это сделать в виде (View), а там оччень скучно в этом отношении. Казалось бы, надо сочинять скрипт. Однако, приглядевшись к стандартным средствам, можно увидеть, что их вполне достаточно для удобной, и даже, можно сказать, эффективной работы. Просто действовать придется немножко по-другому, чем принято в рисовальных программах. Скорее это будет похоже на приемы CAD. Для "ручной автоматизации" ключевыми будут две команды: "Graphic Size and Position", и "Group". Итак, приступим.

А что же именно нужно сделать? Задача звучит обычно так: имеется некоторая "рассматриваемая территория". Ее в GIS, кстати, метко зовут AOI - "area of interest". Форма "интересной площади" может быть разная, но на деле все сводится к двум основным вариантам: изометричному в плане и вытянутому, будем называть их кляксой и колбасой. Первый характерен, например, для месторождений, второй - для трубопроводов. Изометричную территорию, как правило, покрывают листами встык, причем по регулярной сетке, трубопроводы - внакладку. Конечно, и для трубопроводов хотелось бы встык и по регулярной, но это редко удается. Почему - сообразите сами.

Листы, как правило, должны соответствовать стандартным форматам. Удобнее, когда все они имеют одинаковый размер и ориентацию, хотя утилита для ArcMap умеет печатать и разные листы, и даже листы с разным поворотом. Мы в это не будем влезать, сами потом разберетесь. Определите размер вашего "окна карты": ну например, чтобы карта уместилась на "портретном" A3, и вокруг чтоб еще было место для зарамочного оформления. Прикинем также, откуда начать и где закончить разграфку, и можно приступать. Рассмотрим сначала более простой трубопроводный вариант.

Открываем вид: понадобится еще шейп-файл с границей территории, иначе как ее охватить? Для трубопровода советуем создать буфер "интереса", лучше с небольшим запасом, и уже его покрывать листами. Мы называем эту работу "нарезАть колбасу" :)

Секрет успеха в том, что рисовать мы будем в графике. Первый лист просто нарисуем как прямоугольник инструментом "Draw rectangle", причем начерно. Да, но размеры-то как выдержать? Тут поможет средство "Graphic Size and Position" - включаем его и видим окошки, куда можно вписать точную ширину и длину прямоугольника. Однако мы работаем в виде, и ширина/длина тут нужна уже не в миллиметрах бумаги, а в метрах вида. Зная масштаб, это тоже нетрудно рассчитать. Итак, вписываем "метровые" значения в окошки ширина и длина, нажимаем OK: лист принимает нужную форму.

Осталось только подвинуть его слегка, так как он мог чуть съехать. Другой лист делаем как копию первого, потом сдвигаем в следующую позицию. Менять размеры листа уже нельзя - они должны быть все как один первый. Итак, копируем, двигаем, постепенно покрывая листами весь трубопровод. Медленно? Да ничуть. Движения органичные, и сотню листов вы легко наплодите за час, если процесс отлажен.

Да, но как же быть с точной подгонкой краев? Даже на трубопроводе есть место, где это кажется логичным - между листами 5 и 6 оно выделено жирной линией. Это тоже несложно - просто нужно добавить к процессу капельку сообразительности. Что должно у листов совпадать? Правильно, правый край пятого листа должен совпадать с левым краем шестого. Так, собственно, и надо сделать - в том же диалоге "Size and Position" у пятого прямоугольника надо списать значение правого "Х", затем вписать его для шестого прямоугольника как левый "Х": на рисунке они обведены кружочками. Проследите, чтобы значение ширины (Width) при этом не менялось!!!

Итак, листы "нарезаны". Ах да, но ведь они нам нужны в шейп-файле. Что ж, это пара пустяков. Копируем все листы "в буфер", открываем шейп на редактирование и вклеиваем их туда одним махом. Понадобится еще пронумеровать листы. Возможно, вы захотите добавить еще какие-нибудь атрибуты - как того требует массовая печать.

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

Что ж делать в таком случае, подгонять верх и низ каждого листа вручную? Да ни в коем случае. Подгонять нужно только первый ряд, дальше все пойдет как по маслу. Рисуем первый лист, копируем из него второй, подгоняем к первому справа, затем так же пристраиваем третий... Ряд готов. Теперь нужно сгруппировать все прямоугольники первого ряда (команда Graphics/Group). Ну а дальше вы, наверно, уже догадались - можно работать с целым рядом как с одним прямоугольником! Если прямоугольников планируется много, а вы догадливы, то можно процесс и еще ускорить, работая "по нарастающей". Для этого, сделав два одинаковых объекта, сразу группируйте их. Создать ряд в 64 листа тогда можно будет не в шестьдесят четыре приема, а всего в семь. Не забудьте разгруппировать объекты в конце работы, иначе шейп-файл их не воспримет.

А как нарисовать с листы в ArcMap? Разработчики заложили подвох, туды им в качель. Графика в ArcMap не копируется в шейп-файл так запросто, и это рушит отлаженную методику. Однако есть другие пути: имея ArcEditor, можно сдвигать любые элементы шейп-файла на любое расстояние. Для точной подгонки соседних элементов-прямоугольников расстояние сдвига будет равно... будет равно... правильно, ширине либо длине элемента. Остальное делается так же, как и в старом добром ArcView.

Есть, конечно, и различные скрипты на эту тему. Например, в ArcMap инструмент для массовой печати содержит встроенное средство для нарезки листов, и с изготовлением регулярной сетки оно справляется хорошо. Однако для длинномеров типа трубопроводов по-прежнему актуален ручной труд, и знать, как делать это, нам кажется не лишним - изящная ручная нарезка украсит любой стол... То бишь проект :)

Логичные аллаверды к процессу:

- уравнять правый и левый иксы, либо нижний и верхний игреки соседних объектов можно копированьем/переклейкой цифр (Copy/Paste: Сtrl-C/Ctrl-V);

- лучше разбросать листы сначала начерно, а то окажется, что в принципе схема расположенья вам другая нужна;

- оччень тщательно продумайте дизайн макета печати, особенно размер листа карты: весьма обидно из-за двух миллиметров все листы кроить заново;

- если уж это случилось, размер карты пришлось сменить, то из-за двух миллиметров можно заново и не кроить: если ваши листы с накладкой, то никто разницы и не заметит;

- типовую ширину и длину листов в метрах лучше зафиксировать в таблице, причем для разных форматов и масштабов. Такая "палитра" значительно ускоряет дело;

- неплохо для "Size and Position" назначить "горячую клавишу": жать на нее придется частенько, она и правда, бывает, раскаляется :)

- если вы создавали ваши листы последовательно, то нумерацию их можно проводить автоматически - в комплектe скриптов-примеров ESRI есть скрипт "addrecno.ave".

Lalex