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

КАК ПРЕВРАТИТЬ ТОЧКИ В ЛИНИИ

Операция очень популярна, и бесплатных средств на эту тему вы найдете множество - коллекция ESRI пестрит средствами такого рода. Задача кажется простой, но однозначное решение в ГИС найти трудно. В чем тут может быть загвоздка? - Скажете вы. Соединить ближайшие точки, и вся недолга!

Да, вот в таком простом случае прокладка линии очевидна, и никаких сложностей возникнуть не должно. Но вот другой расклад положения точек:

Тут видно, что бывают случаи, когда вариант соединения не единственный. При прокладке линии с "северо-запада", от точки "А", программа даже может зайти "в тупик", так как варианты прокладки к А1 и А2 равнозначны (интересно, что при прокладке с юго-востока такой загвоздки не возникает, Б явно тяготеет к А1). Это означает что автоматизированый процесс в общем случае не сработает, и, скорее всего, программам такого рода нужна некоторая интерактивность, полуавтоматичность. Поэтому не стоит обольщаться скриптами, которые сулят мгновенное объединение ваших линий по интуитивным алгоритмам - они работают, но только при очень простых конфигурациях исходных точек. Кроме того, работа по выбору ближайшей точки медленная, и программы, очевидно, будут "тормозить" на больших шейпах.

Все это означает, что настоящие ГИС-средства должны быть устроены как-то по-другому. Они и устроены: есть множество средств, которые работают уже на пронумерованных точках. В таком случае линия создается адекватно и быстро, но как же интуитивное сочленение? Оно разумно лишь для небольших объемов, а в остальных случаях стоит его выделять в отдельную исследовательскую задачу - ведь кроме вышеописанного, в одном слое бывает еще и не одна, а множество линий, и нужно сами точки предварительно группировать в будущие отдельные линии... А если, в общем случае, таких групп множество и они накладываются друг на друга и сами на себя?

Ладно, пускай по номерам. Где взять хоть такой ГИС-инструмент? Пользователям ArcINFO задача знакома, стандартные инструменты там есть. В ArcView наиболее удачным нам кажется модуль "Edit Tools". Изначально он предназначался для редактирования линий, но начиная с третьей версии в нем появился мощный раздел конвертации всего и вся во что угодно. Для работы с ним нужно иметь в таблице точек всего две колонки - номер линии и порядковый номер точки в этой линии. Заполните их как надо, и приступим. Скрипт можно скачать здесь в версии 3.6.

Устанавливаем модуль, запускаем в нем Convert/Points to Polyline. Скрипт спрашивает где номер линии (ID), затем где порядковый номер точек (Order), и дело в шляпе - осечек почти не бывает. Оно и понятно, легко ему, если все уже ручками пронумеровано!

Из недостатков стоит отметить, что он порой портит поле ID в таблице - заменяет его на ET_ID, так что это не смертельно. Скрипт работает очень стабильно, есть в нем и другие "топологические" функции... Версия 3.6 для AV теперь бесплатная, конвертируйте сколько душе угодно!

А как же все-таки пронумеровать сотни точек, ну хотя бы если порядок нагляден? Это отдельная задача, и хитрости тут могут быть следущие: в качестве порядкового номера иногда годится... координата X или Y! Edit Tools, к счастью, понимает не только целочисленный порядок. Если есть подозрения, что точки были отрисованы строго одна после другой, воспользуйтесь одним из скриптов, который нумерует строки просто "по очереди", например, вот этим. Возможно, помогут и другие ваши атрибуты - например, высота Z, пользовательский индекс точки (A,B,С и т.п.). В любом случае перед сборкой линий стоит проверить нумерацию: увидеть воочию будущие линии можно путем расраски точек по их группам, порядок хорошо иллюстрируется раскраской точек "градуированными символами" по будущему порядку.

Не могу удержаться, чтобы не дать также прямую ссылку на сайт автора, тем более что там есть подробная инструкция по работе с модулем.

Что для ArcMap? Там эти средства есть в Toolbox, но для их работы требуется опять-таки ArcINFO. К счастью, старый добрый EdiTools и тут поможет, скачайте его и вперед - конвертация в нем опять-таки бесплатная. Да, теперь он называется GeoWizards, но работает так же отчетливо.

Вот и все. Удачных Вам линий!

Lalex.