1. Общая информация

Что может программа HandMap ?

Программа для ....................................................

 

Что такое правильно созданная карта ?

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

Желательно, чтобы карта была привязана к координатам. Для этого нужно, чтобы она была ориентирована по сторонам света (сверху - север, снизу - юг), и чтобы для какого-то прямоугольника указали координаты его границ (так это делается в MapIt).

 

2. Подготовка

Необходимый софт

Для создания карты Вам понадобится следующие программы:

Эмулятор - это "Palm OS Emulator". Взять его на http://www.palmos.com/dev/tools/emulator/

MapIt

простая, регистреная, enterprise edition от 2.4

Редактор карт для HandMap. В большинстве случаев простой версии достаточно.
Palm OS Emulator
3.3

Для тестирования. http://www.palmos.com/dev/tools/emulator/

Собственно HandMap Deluxe
3.9.4
Коментарии излишне...
 

Для Palm OS Emulator понадобится ROM. Самый простой вариант - это выкачивание его (ROM) через крэдл с самого девайса с помощью утилиты getrom (входит в состав эмулятора).

Материалы и источники

Для создания векторной карты необходимо иметь карту в растровом формате. А так же при необходимости какие-то другие карты той же местности, на которой могут быть изображенны, к примеру, культурные объекты, магазины и проч. .

Рекомендуется иметь карты размером около 3000х3000 пикселей. Рекомендация продиктована ограничениями памяти и глючностью софта.

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

 

3. С чего начать

После того как подготовка пройденна Первые шаги при создании карты следующие:

Разобрать карту на нормальное количество кусков manageable размера - типа 3000x3000. Преобразовать карту в формат bmp. Скачать ROM из девайса. Поставить MapIt! Создать новый файл - открыть в нем bmp'шки. Если их несколько, то выравнять, чтобы они ровно наложились друг на друга (рядом друг с другом). Если памяти мало, то можно закрыть MapIt!, перенести картинку (bmp) в другой каталог, открыть MapIt! Он этой картинки не найдет и будет работать без нее. В это время можно иметь дело с остальными (открывшимися картинками). Если надо, можно переместить вообще все, кроме одной. Потом закрыть MapIt!, положить вторую, а первую убрать и т.п.

Открываем MapIt. Меню File/New. В появившемся диалоге указываем "Simple Project, .... " Затем выбираем битмап с подготовленной картой которая будет использованна как шаблон. Появляется диалоговое окно "Layers". Сдесь надо ввести все слои которые планируся использовать. Эти установки можно модифицировать и позже. Ориентировочно слои должны такие как земля, вода, парки/леса, улицы, ж/д и метро, здания, точечные объекты. PgUp/PgDn переключение между слоями в редакторе.

Если битмап с картой-шаблоном слишком сжат, то можно поиграть со следующими установками :

1. меню/File/Properties: bounds max

2. меню/Layer/Backgroung Bitmaps: Properties max

Так во чем больще "max" в пункте 2 по отношению к пункту 1 темь меньше сжатие картинки. К примеру для битмап карты размером 4000х4000 удобно подошли следующие установки: п.1 = 4000х4000 п.2 = 16000х16000

 

4. Редактирование\создание основных элементов карты

4.1 Улицы

Кликнул на кнопку "Полилиния". Кликнул на начало улицы, потом на первый перекресток или поворот, следующий и т.п. Дошел до конца, нажал Enter, набрал название. Не забыть выбрать правильный тип. Еще раз Enter. Готово.

4.1.1 Полезные советы

Некоторые названия в "полезных советах" взяты из карты Парижа.

1) Не надо использовать все заглавные буквы. R. CLEMENT BAYARD (FREEWAY) -> R. Clement Bayard (FREEWAY)

2) Если не получается ввести символы языка на котором вы вводите названия улиц - пререключите дефаулт локаль вашей ОС на локаль того языка - всё получится.

2) Надо одинаково сокращать тип улицы, а лучше не сокращать вообще. R. Clement Bayard (FREEWAY) -> Rue Clement Bayard (FREEWAY)

3) Надо правильно выбирать тип улицы в зависимости от ее важности (ширины). Самые широкие улицы (Avenue de Neuilly) - это FREEWAY, менее широкие (Boulevard Bineau) - это HIGHWAY, еще уже (Rue Paul Vaillant Couturier) - это ROAD3, еще уже (Rue Marie-Jeanne Bassot) - это ROAD4, совсем узкие (Rue Clement Bayard) - это ROAD5. ROAD6 на этой карте не изображены (хотя они и есть). Да, желтое кольцевое шоссе - это, конечно же, FREEWAY. Rue Clement Bayard (FREEWAY) -> Rue Clement Bayard (ROAD4) Тип улицы не должен сильно отличаться от тех улиц, которые являются ее продолжением - тип улицы находится в прямой зависимости от ее ширины на карте - желательно, чтобы улицы только типов 1-2 или только типов 1-4 образовывали на карте красивую сетку. Это не должно быть несколько палок в разных частях карты, торчащих в разные стороны. - набережные не стоит делать типа 1 (FREEWAY) - при любом zoom'е не должно быть мешанины улиц и не должно быть пустых пятен - крупные улицы должны быть типов 1-2 - большая часть остальных улиц должны быть 3-4 - самые мелкие и короткие улицы, тупики и т.п. могут быть 5-6 - неотмеченное название снижает тип улицы примерно на 1

4) Перекрестки должны отмечаться перекрестками. Две ломаные, которыми представлены две улицы, могут пересекаться только в вершинах, но ни в коем случае не отрезками между ними. Для того, чтобы вершины двух ломаных, представляющих пересекающиеся улицы, совпали, может понадобиться увеличить масштаб и/или передвинуть одну из вершин. Общее правило: улица начинается и заканчивается на перекрестке.

5) Наверное, стоит начать с центра города. То, что внутри кольцевой дороги - Париж, и должно быть сделано в первую очередь.

6) Как делать площади, Площади можно делать многоугольниками. Если на площадь выходит, к примеру, пять улиц, площадь должны быть представлена пятиугольником, к вершинам которого должны подсоединяться улицы. Если какая-то улица пересекает площадь, то пересечение должно проходить по границе площади (и может состоять из нескольких звеньев, совпадающих с многоугольником площади). Если в центре есть водоем, трава, здание или точечный объект (например, памятник), то его можно аккуратно поместить в середину этого многоугольника. Если это площадь, она должна быть оформлена как площадь. Если это перекресток, то как перекресток. Не должно быть путаницы. И проверить еще раз. - площадь должна делаться типом, не большим, чем самая большая выходящая на нее улица. Иначе она будет видна при малом зуме, когда сами улицы не видны.

7) Неподписанные улицы тоже улицы.

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

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

11) Мосты - мосты должны быть сделаны как кусок суши. или, если фон - суша, то речка должна состоять из фрагментов "от моста до моста" Общее - нужно всегда думать о том, как будет выглядеть карта без битмапа в подложке - обязательно смотрите на карту на эмуляторе или Палме - НЕ НУЖНО переносить ошибки сканирования в электронную карту! Объекты - все объекты должны быть помещены точно там, где они есть на карте - парки и трава - это OPENSPACE, а не LAND Прочее - линии метро должны быть непрерывными с вершинами в станциях

4.2 Реки, Пруды, Озера

На карте подобного масштаба речки необходимо изображать в виде полигонов. Проблема в том, что HandMap не очень корректно работает с полигонами. Для того, чтобы полигон (многоугольник) отобразился корректно, он должен быть "выпуклым по горизонтали". Это означает, что каждый горизонтальный отрезок, концы которого принадлежат многоугольнику, должен полностью принадлежать этому многоугольнику. Если многоугольник не соответствует этим требованиям, то HandMap дорисовывает его так, что он начинает им соответствовать. Примеры конфигураций, которые отображаются нормально (чтобы не рисовать, я использую заглавные латинские буквы): L T E Z J I Примеры конфигурация, которые глючат (с описанием того, что происходит в HandMap при отображении): O (заполняется внутри), U (заполняется между "усиками"), W (заполняется полностью между левой и правой наклонными чертами), X (заполняются верхний и нижний углы), Y (заполняется верхний угол). Для того, чтобы глюков не было, нужно разрезать многоугольник на части. Это делается из контекстного меню открывающегося при нажатии на многоугольник (в две команды - выбираются две точки для разреза). Таким образом, можно рисовать большие куски речек, но потом придется их разрезать на маленькие кусочки, чтобы не было глюков. Название реки должно быть у каждого сегмента. Речки должны быть сделаны отдельным слоем. Вторая проблема с речками: мосты. Дороги нарисованные поверх речек (даже типа HIGHWAY) не видны в HandMap. Поэтому придется рисовать речку не целиком, а от моста до моста (представим на секунду, что мосты превратили в плотины, по верху которых идут дороги, и разбили тем самым реку на кучу озер). Желательно, чтобы такие полоски суши были не очень широкими. Названия мостов нужны. В том случае, если улица одинаково называется по обе стороны от моста, можно либо разбить ее на две части, либо пририсовать мост поверх одного из сегментов этой дороги. Озера, пруды и т.п. делаются так же.

4.3 Парки

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

4.4 Достопримечательности, Важные объекты

Достопримечательности, крупные здания Все объекты, изображенные на карте (Эйфелева башня, памятники, музеи, госпитали, вокзалы, станции метро и т.п.) должны быть введены в качестве объектов. Из двух типов объекта нужно выбрать объект с категорией (CATPNTFEATURE) (а не с иконками). Для каждого из них нужно эту категорию выбрать. Все объекты идут отдельным слоем. Крупные здания (такие как Лувр, вокзалы, госпитали) нужно также создавать в виде полигонов (отдельным слоем). Полигон должен иметь имя (такое же как у объекта). Объект где-то в серединке полигона.

4.5 Железные дороги

Железные дороги Отдельным слоем, тип дороги RAILROAD. Рисовать все.

4.6 Метро

Метро Отдельным слоем, тип дороги SUBWAY. Линии метро должны называться так, как они называются и соединять станции метро (объекты).

4.7 Слои (Дополнение)

В обычной версии есть ограничение на количество слоев - 8 штук. Это может быть немного неприятно. В то же время, MapIt! Enterprise Edition поддерживает намного больше слоев. (но у меня есть только нерегистреный MapIt! EE, в котором отключена функция записи) Первое решение - загнать два класса объектов в один слой. Тогда, видимо, нужно для этого слоя в диалоге Edit Layers указать MOSC_TYPED_OBJS. Второй вариант - рисовать карту в двух файлах отдельно. Можно, к примеру, нарисовать все, кроме метро, потом скопировать карту во второй файл, удалить какой-нибудь слой, сделать вместо него Subway и редактировать его в этом файле. После всего этого запустить MapIt! EE, открыть в нем один файл, потом сделать Import из второго файла и экспортировать в PDB.

 

 

 

 

 

©Danil Medvedev February 26, 2002