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

КАК ПРОСТАВИТЬ ТОЧКИ ВДОЛЬ ЛИНИИ (МАРШРУТНЫЕ СОБЫТИЯ)

Задача возникает, когда надо, например, вдоль дороги проставить километровые отметки. Средства для этого всегда под рукой в Автокаде, есть они и в рисовальных программах, а в ArcView вы их не отыщете, если только не обратитесь к программированию или разного рода уже наработанным скриптам (соображения на эту тему есть здесь). Мало того, простая нарезка линии на отрезки или простановка физических точек через равные промежутки непопулярна и в ArcINFO. Почему? В ГИС для таких "маршрутных" задач заложен мощный механизм так называемых маршрутных тем, маршрутных шейп-файлов. Что это такое и как с ними работать?

Скачайте для примера шейп-файл routes1.shp. в ArcView вы увидите, что его тип определяется как ArcM (PolylineM) - это значит, маршрутность в нем есть. В шейп-файле, кроме координат, имеется место для записи какого-либо значения вдоль линии. В нашем примере это значение уже занесено (если точнее, оно занесено для каждого узла линии, а между узлами интерполируется в процессе работы). Как увидеть это значение? В ArcView никак, нет такого средства. ОДнако несложно найти инструмент для этого дела в коллекции ESRI - например, вот такой. Инструмент покажет некое значение в любом месте линии, не только в узлах. Начало линии-маршрута, слева внизу, имеет значение 1, окачивается маршрут значением 7,5. Полезно, когда в шейп-файле есть колонка с номером самого маршрута - ведь маршрутов в слое может быть много.

Попробуем расставить километры вдоль этой трассы. Процесс стандартный и изложен также в help по ArcView, но подводные камни есть и вам придется попотеть, преодолевая их. Команду для этого отыскать и то не просто, она оформлена как "Event" - событие. Вы наверняка уже проставляли точки по координатам, теперь проставим по линии - и это тоже событие, оказывается! Да, сложновато ГИС устроены, но... поверьте, овчинка стоит выделки. Механизм задуман безупречно, работает четко и вы еще получите массу положительных эмоций... Потом, когда продеретесь сквозь дебри. Итак, открываем View/Add Event Theme, нам нужна вторая закладка, та, что обозначена линеечкой. Диалог выглядит намного сложнее чем по X-Y. Оно и правда - запутаться тут раз плюнуть, поэтому не будем спешить, вернемся и просмотрим сначала исходные данные. В линейном никиках колонок не нужно, кроме целочисленного номера линии - в примере это колонка IDL. Наша единственная маршрутная линия обозначена как номер 1. Но это не все! Нужен еще список точек-километров, вот он прилагается для примера, скачайте его тоже. В нем 14 точек, это как бы будущие столбы через каждые полкилометра. Значение километража обозначено в числовом поле M. Ну и номер линии, конечно, понадобится, по которой эти самые точки расставлять - он в целочисленном поле IDL, и тоже записан как 1. Это крайне важно - большинство проблем именно с этим номером связано. Проверьте еще раз не только значение номера IDL, но и его тип - строковый не допускается, дробный может глючить. Только целочисленный!

Снова запускаем Event Theme. Настраиваем диалог как на картинке - вначале указана маршрутная тема, по которой расставлять, потом колонка с номером линии-маршрута. Выбор "Points" по умолчанию обозначает, что ставить будем точки, а не отрезки (да, еще и отрезки можно строить!). Далее указываем таблицу с точками (она должна быть подключена к проекту). Event Field для таблицы обозначает не колонку со значениями, как можно было б думать, а опять-таки номер линии, в нашем примере IDL. Вот "Location field" - это как раз обозначение дистанции. Offset? Это попробуете потом, сами, тут оставьте как есть.

Уф! перепутать плевое дело. Мало того, скажу по опыту, ни у кого с первого раз не получается. Так что будьте очень внимательны, и проверьте все еще раз. Нажимаем ОК. Если все в норме, то точки будут проставлены, и вот что получится (для наглядности я надписал точкам их дистанцию).

Это не "твердые" точки, это события. Они составлены как временный, виртуальный слой из маршрутной линии и таблицы точек, а сами не записаны ни в какой шейп-файл. Если это нужно их зафиксировать, можете воспользоваться знаменитой командой "Convert to shapefile". Но... живые точки интереснее - редактируя таблицу, вы можете "на лету" добавлять километровые отметки или менять их, сколько вам заблагорассудится. В этом и есть главный смысл событий-events, как и в случае с координатными (X-Y) событиями.

"Но позвольте!" - скажете вы. С примером все понятно, а как же мне создать свою маршрутную тему? К сожалению, ArcView этого не умеет. Но не печальтесь, есть средства и для этого: как оно делается, расписано в разделе "Продвинутым".

В ArcMap имеются средства и для простой, рисовальной работы по разбиению линий. Как уступка, так сказать, обычному чертежному менталитету. Это, например, команда "Divide". Однако механизм создания точек-событий вдоль маршрутной темы работает более мощно, и тем, кто с ним подружился, будет намного легче плавать в море ГИС. Команду "Add Route Events" вы найдете там же, где и "Add X-Y" - в меню Tools, ну а как работать, по сути описано выше.

Примечательных вам событий!

Lalex