Импорт GPS-карт в шейп-файлы ArcGIS

advertisement
1
Импорт GPS-карт в шейп-файлы ArcGIS
В интернете имеется большое количество векторных карт для различных программ GPS-навигаторов (см.,
например, [1, 2]). Часть этих карт имеет открытый формат, и некоторые постоянно обновляются авторами.
Такие карты можно использовать в качестве основы для создания собственных векторных карт.
В первую очередь, нам нужна карта формата Навител [3], Garmin [4] или ГИС Русса [5]. Подходят карты только
открытых форматов (*.rus, *.img, *.ntm), а также польского формата (*.mp). Другие форматы вероятнее всего
для нашей цели не подойдут, поскольку являются закрытыми. В настоящее время, как правило, выпускаются
именно такие — закрытые — карты. Форматы этих карт (например, *.nm2) на сетевом жаргоне называются
«новыми», в то время как упомянутые выше открытые — «старыми».
Карту города, области или Украины в целом можно найти на одном из сайтов [1, 2]. Для дальнейшей работы
нам понадобятся следующие программы:

GPSMapEdit (скачивается с [6]) используется для работы картой в формате GPS-навигатора. С ее
помощью можно просматривать и редактировать карты, а также экспортировать их в нужный формат
(в нашем случае — польский). GPSMapEdit распространяется условно-бесплатно, но функции,
доступные в платной версии, нам для работы не понадобятся.
 PText2shp [7] — предназначена для импорта из польского формата в shp-файлы ArcGIS.
Схема работы заключается в следующем: 1) в интернете находится карта интересующего нас региона в
открытом формате; 2) карта сохраняется через GPSMapEdit в польский формат; 3) карта в польском формате
конвертируется PText2shp в шейп-файл.
Разберем эти этапы на примере карты г. Днепропетровска.
Исходную карту можно найти на форуме сайта TravelGPS.com.ua ([8], карта пользователя Mr.Flasher) или на
сайте [9].
Нам нужно открыть карту в GPSMapEdit, выделить на ней интересующие нас объекты и перенести их на новую
карту, которую затем сохранить в польском формате. Сам GPSMapEdit карты создавать не умеет, поэтому
вначале создадим карту-заготовку в польском формате.
Польский формат — это текстовый формат хранения данных, используемый как в качестве промежуточного
формата при конвертировании между различными промышленными форматами электронных карт, так и для
их редактирования. Подробное описание структуры польского формата приведено на сайте [10]. Поскольку
польский формат — текстовый, то файл-заготовку можно создать в любом текстовом редакторе. В качестве
заготовки можно создать карту, содержащую всего одну точку.
Открываем карту города в GPSMapEdit (рис. 1).
Рис. 1
2
Если вместо карты появились лишь текстовые сообщения, значит, формат карты не поддерживается. Если
карта открылась, идем в меню Правка -> Выделить -> По типу (рис. 2).
Ставим флажки на выбранных слоях (группировать нужно обязательно по категориям объектов: улицы и
дороги только с улицами и дорогами, реки только с реками и т. п.) и нажимаем ОК (рис. 3).
Рис. 3
Результат выделения улиц и дорог Днепропетровска представлен на рис. 4.
3
Рис. 4
Копируем выбранные объекты (Правка -> Копировать) и открываем файл-заготовку1 (Файл -> Открыть).
Удаляем в нем все объекты (Правка -> Выделить ->Все объекты, затем Правка -> Удалить) и вставляем из
буфера обмена вырезанные слои (Правка -> Вставить). После этого может появиться предупреждение (рис. 5)
Рис. 5
Следует согласиться на конвертацию. В результате получим новую карту, содержащую информацию об
улицах и дорогах Днепропетровска.
Рис. 6
1
Кнопка на Панели инструментов имеет значение «Добавить» и добавляет карту к уже существующей, в то время как
нам нужна новая пустая карта.
4
Теперь с помощью меню Файл -> Сохранить карту сохраним новую карту, и выбирая Polish format (*.mp, *.txt).
Первый слой будущей карты готов. При необходимости, возвращаемся в открытую карту и повторяем
процедуру выбора слоев, вырезания и переноса их в карту-заготовку.
Слои следует группировать по назначению (например, дороги, строения, водоемы). Если карта содержит слои
одного назначения, но разного типа (например, водоемы могут быть и полигональными и линейными), то их
лучше разбить на отдельные слои. К названию слоя для удобства можно добавить его тип, например:
«Улицы_дороги_линия». Сохраненный файл называется Улицы_дороги_линия.mp.
Когда создание слоев завершено, переходим к следующему этапу: конвертированию полученных карт в
шейп-файлы.
Запускаем PText2shp, выбираем файл исходный файл (Polish Format Text File). Флажком ESRI shp file prefix
можно установить, чтобы имя выходного файла совпадало с именем исходного с добавлением префикса
(вообще говоря — постфикса, тут разработчики ошиблись в терминах), указывающего тип слоя (L —
линейный, A — полигональный, P — точечный). Из трех флажков (Line, Area, Point) оставляем тот, к какому
типу относится этот слой (линейный, полигональный, точечный) (рис. 7).
Рис. 7
В GPS-картах слои разделяются на уровни детализации. В режиме просмотра карты при
увеличении/уменьшении масштаба, определенные слои отображаются/скрываются при этом
увеличивая/уменьшая детализацию тех или иных объектов. Наибольшая детализация объектов находится на
уровне «0». С увеличением уровня некоторые слои стают менее детализированными, а некоторые исчезают
вовсе. Некоторые слои могут находиться только на верхних уровнях т. к. для них большая детализация не
нужна (например, крупные автомагистрали или соседние города). Уровни могут идти не последовательно,
часто перескакивая сразу через несколько (на нашей карте, например, есть уровни «1», «2» и «5»). Флажок All
указывает на то, что будут сконвертированы все уровни детализации для данного слоя. Однако удобнее, на
наш взгляд, снять флажок All, и поочередно конвертировать уровни, начиная с «0», чтобы затем уже в ГИСпрограмме выбрать необходимый слой или группу слоев (рис. 8).
Рис. 8
Количество уровней детализации можно узнать с помощью GPSMapEdit в меню Вид -> Уровни.
5
После завершения конвертирования в выбранном исходном каталоге находятся файлы с расширениями *.shp,
*.shx, *.dbf. Теперь необходимо удалить пустые файлы, для отсутствующих уровней детализации. Найти эти
файлы не сложно — все файлы одного типа будут иметь одинаковый размер.
Для работы с полученными shp-файлами можно использовать ArcGIS, однако для наших целей (простейшая
правка перед использованием шейп-файлов в NetLogo) подойдут более старые версии, например ArcView GIS
3.2 (значительно меньше объем и требования к системным ресурсам), а также более просты ГИС-программы.
Например, свободно-распространяемая ГИС LandSerf [11]. На рис. 9 показано отображение улиц и дорог
Днепропетровска, импортированных на предыдущем этапе в ГИС LandSerf.
Рис. 9
Источники
1. TravelGPS.com.ua http://travelgps.com.ua
2. Карты
из
проекта
OpenStreetMap,
преобразованные
для
навигаторов
Garmin
http://gpsmapsearch.com/osm/mp/
3. Навител http://ru.wikipedia.org/wiki/Навител
4. Garmin http://ru.wikipedia.org/wiki/Garmin
5. Личный вебсайт Игоря Сапунова — разработчика ГИС Русса http://www.gisrussa.com/
6. GPSMapEdit http://www.geopainting.com/ru/
7. Polish Text to ESRI shp converter http://www.msh-tools.com/Ptxt2shp.html
8. Украинский форум по автонавигации и картам > Наши карты по областям / городам / регионам >
Днепропетровская и Запорожская области http://travelgps.com.ua/forum/viewforum.php?f=62
9. vak255.narod.ru http://vak255.narod.ru/GPSmaps/DneprVAK.rar
10. Выбор и использование персональных навигаторов GPS http://v-dorogu.narod.ru/article/polishformat.htm
11. Официальный сайт ГИС LandSerf http://www.landserf.org/
Download