Создание и редактирование объектов
Я долго думал каким образом описать процесс работы с объектами. С одной стороны, просто необходимо познакомить Вас с основными принципами, с другой стороны очень не хотелось повторяться, так как основные принципы незначительно разняться от одного типа объекта к другому. Кроме всего прочего, хотелось бы поподробнее рассмотреть вопросы, связанные с работой в проекте "Нарисуй карту", а так же с оптимальной организацией работы с объектами. В результате я решил остановиться на неожиданном, с первой точки зрения, варианте. В этом пункте лекции мы с Вами рассмотрим процесс создания и редактирования сразу всех объектов. А далее мы сразу перейдём к вопросам по организации процесса создания карты и способах избежать возможные неприятные неожиданности.
Тот, кто хоть немного работал в любом редакторе, ориентированном на векторную графику, сразу же поймёт суть каждого из трёх типов векторных объектов. Но, в тоже время, увидит разницу между настоящими векторными объектами таких редакторов, как Corel DRAW или Adobe Ilustrator, и объектами, присутствующими в программе GPSMapEdit. И на самом деле, объекты на нашей карте будут образованы не кривыми, а только прямыми линиями, проходящими через опорные узлы. В этом смысле эти объекты не являются векторными в полном смысле этого слова.
Слева кривая описана 2 точками, как в Corel DRAW, справа 11 точками, как в GPSMapEdit.
Впрочем, именно так представлены объекты в такой популярной программе, как AutoCAD, которую никак не назовёшь любительской или неподходящей для своих задач. Выбор такого вида представления был выбран, исходя из поставленной задачи и оптимального способа её решения. При отсутствии одной характеристики, объекты сохранили другие свойства векторного изображения. К таким свойствам можно отнести независящую от текущего масштаба, толщину образующих линий и размер имён объектов.
Какие объекты можно создавать в программе GPSMapEdit? Сначала давайте сформулируем их отличительные признаки.
Point или Узел - точка, имеющая свои координаты. Не путать с объектом Точка, так как узел не имеет других свойств, кроме координат. В объектах "Линия" и "Полигон" он служит связующим звеном между прямыми линиями, определяющими форму этих объектов.
Point или Точка - это объект, состоящий всего из одного узла, имеющего координаты и имеющий возможность иметь собственное имя и тип.
Polyline или Линия - объект состоящий из нескольких, соединённых между собой узлов. Линия всегда является незамкнутой, даже если начальный и конечный узел имеют одинаковые координаты.
Poligon или Полигон - объект, вписанный в границы, определяемые узлами замкнутой линии. Всё пространство, находящееся внутри этой линии, является этим же объектом.
Из этих определений Вы должны понять, что чем больше узлов будет у Вас в объектах типов "Polyline" и Polygon", тем более точно и подробнее мы сможем описать форму этих объектов. Именно положение и количество узлов, составляющих эти объекты, подвергается генерализации в зависимости от масштабов слоёв.
Для создания любого объекта необходимо выбрать соответствующий инструмент. Таким инструментом является инструмент "Create object". Проще всего воспользоваться полем выбора на инструментальной панели с иконками - , и выбрать соответствующий тип объекта. Если Вы выбрали объект типа "Point", то Вам достаточно указать курсором на то место, где должен находиться этот объект и, нажав левую кнопку мыши, создать в этом месте точку. Если нужно создать "Polyline", то просто сформируйте узлами линию необходимой формы и длины. Объект "Polygone" создаётся также, как и линия, но здесь нужный участок нужно отметить узлами по контуру. Завершение операции создания линии и полигона завершается нажатием клавиши "Enter". Все операции по созданию объектов очень легки и наглядны. С ними у Вас сложностей не будет.
Давайте посмотрим что происходит далее. После окончания создания объекта нам будет предложено определить его тип и имя. Для каждого вида объектов существует свой перечень доступных типов. Он достаточно обширен, поэтому я не буду приводить здесь весь перечень. Рекомендую хотя бы один раз не спеша ознакомиться со всеми возможными типами для каждого из возможных объектов. При выборе типа учитывайте его цвет. В большинстве случаев именно таким цветом будет обозначен данный объект на Вашем КПК.
Некоторые из доступных типов для объектов "Polygon".
Выбрав подходящий тип, мы можем задать имя для только что созданного объекта. Если в этом нет необходимости, то можно сразу нажать на "Enter" и закончить с его созданием. Все эти операции, после нескольких опытов, не будут вызвать у Вас никаких затруднений, поэтому не будем больше останавливаться на таких элементарных вещах. Тем более, что как я подозреваю, Вы и до этой лекции вполне самостоятельно освоились с ними.
На возможностях редактирования существующих объектов следует остановиться несколько подробнее. Так как возможности редактирования практически одинаковы для всех видов объектов, то стоит построить их описание в предыдущем ключе - сразу для всех видов.
Для редактирования свойств любого объекта необходимо выбрать инструмент "Select objects" и выделить с его помощью этот самый объект. Имеется возможность выделения сразу нескольких объектов. Для этого можно или очертить прямоугольную область, в которой будут выделены полностью попавшие в эту область объекты, или поочерёдно выделить нужные объекты, удерживая клавишу Shift. Эта операция является стандартной для большинства приложений Windows. Нажав после этого правую кнопку мыши, можно увидеть следующее меню:
Многие пункты Вам уже знакомы. Основными в редактировании объектов являются пункты "Modify" или Изменить и "Properties" или Свойства. Возможности их во многих вещах пересекаются, но в каждом есть то, чего нет в другом.
Сначала про пункт "Modify". Здесь можно изменить имя объекта - "Label", его тип - "Type", преобразовать его в другой вид объекта - "Kind". Причём возможно только преобразование из полигона в линию и обратно. Что вполне логично. Немного особняком стоит команда "Extend all elements up to level" или Копировать все элементы объекта на более высокие слои. Эта команда позволяет копировать выбранный объект на один или несколько слоёв. После выбора Вам будет предложено указать до какого слоя включительно следует копировать объект. Не забывайте имеющееся количество слоёв и то, что их нумерация начинается с нуля.
Очень полезным может оказаться инструмент "Join objects". С его помощью можно объединить несколько объектов. Просто выделите несколько объектов одного типа, например полигонов, и примените к ним эту операцию.
При общей схожести, пункт "Properties" позволяет нам задать и получить некоторую дополнительную информацию о выделенном объекте. По предыдущему рисунку видно, что этот в окно этого пункта можно попасть просто дважды нажав левую кнопку мыши.
Первая вкладка так и называется - "Properties".
Здесь можно изменить не только тип и имя объекта, но и задать для него комментарий. Комментарий может содержать любые символы, но при компиляции карты эти данные теряются. Кроме этого в этом окне мы можем получить информацию о количестве элементов и узлов в данном объекте.
Следующие вкладки содержат только справочную информацию об объекте. Наиболее информативным является вкладка "Elements".
Здесь дана информация о выделенном или выделенных объектах. Так можно посмотреть до какого слоя скопирован этот объект, на каком слое находится сейчас, координаты первой точки объекта, количество узлов, занимаемая площадь. Есть возможность вручную задавать координаты для каждого узла. Для этого надо выбрать "Edit". Выбранные объекты можно удалить или копировать на другой слой.
Немного особняком стоит команда "Refresh inners" или Обновить внутренние полигоны. Если по какой-то причине объекты отображаются не в соответствии с правилами, то эта операция перераспределяет их как надо. О правилах отображения объектов мы поговорим позднее.
Следующая вкладка содержит кусок кода в Польском формате, описывающий выбранный объект.
"Extras" или специальные возможности в настоящее время не используется.
Но возможности редактирования на этом не заканчиваются. Важнейшим инструментом для редактирования формы объектов является инструмент "Move points". Он позволяет работать с узлами объектов. А эти узлы, как Вам уже известно, как раз и формируют положение для точек и форму для линий и полигонов. Выберем на инструментальной панели этот инструмент - . После этого выделим любой полигон. Сразу становится понятно что произошло - стали видны узлы, формирующие данный объект. Что с ними можно сделать? Выделив нужный узел, его можно перемещать. Наведя на него курсор и нажав правую кнопку мыши, его можно удалить. Соответственно, если поставить курсор на участок линии не содержащий узлов, в предыдущем диалоге пункт "Delete point" смениться на "Add point here" или Добавить узел в этом месте. Напомню, что точка является объектом, поэтому с ней и работать лучше как с объектом. Для объектов типа линия есть ещё одна интересная возможность. Это функция разрыва линии в нужном участке - "Split polyline". С её помощью Вы можете разрезать линию в нужном месте. В результате получатся два разных объекта типа линия. Это будет видно при выделении какого либо из получившихся отрезков.