Как бы я нарисовал и визуализировал пользовательские карты на основе данных OSM?


35

Я хотел бы иметь возможность использовать данные openstreetmap для конкретного региона в качестве источника и «черпать» из этого карту улучшений инфраструктуры - в основном дорог.

Я хочу, чтобы он был размещен самостоятельно (не портя никаких данных на реальных серверах OSM), хотел бы иметь довольно большую гибкость и уровень детализации в процессе редактирования, и было бы неплохо сделать его довольно красивым.

Я не знаком с большим количеством программного обеспечения ГИС. На самом деле не так важно иметь данные OSM в качестве источника, это может быть и спутниковое изображение. Важные вещи - гибкое рисование, привязанное к реальным координатам и визуализация карты.

Где я мог начать?

Надеюсь, что этот вопрос имеет смысл здесь :)


На какую платформу вы смотрите? Можете ли вы использовать Google Maps для рисования фигур?
Джаред Апдайк

Джаред, ты имеешь в виду простой интерфейс "Мои карты" Карт Google? Мне этого мало :) Мне нужен гораздо больший уровень детализации. Или ты имеешь в виду что-то еще?
арконавт

Для какой части мира вы хотите это сделать? В некоторых частях мира существует множество дорожных данных, которые являются общественным достоянием.
DJN

Ответы:


16

XML-тип данных OpenStreetMap .osm может быть проанализирован и представлен в нескольких пакетах программного обеспечения. Для немного готового ящика с плиткой карты я предлагаю: http://tiledrawer.com --- продукт, который использует Amazon EC2 и Михал Мигурски - который предоставляет другие указатели в этой теме :)

Вы также можете проверить «Создайте свой собственный сервер OpenStreetMap» http://weait.com/content/build-your-own-openstreetmap-server Он использует стек Ubuntu 10.04 / PostGIS / Mapnik.

Конечно, пожалуйста, посмотрите лицензию OpenStreetMap перед сборкой. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .


Спасибо, я однажды сталкивался с TileDrawer, но, насколько я понимаю, для этого мне нужен экземпляр Amazon EC2. Я не хочу делать это сейчас, может быть, я просто слишком ленивый :)
arconaut

Я читал, что вы можете запустить образ EC2 на своем компьютере с помощью VirtualBox.
Джеймс

Веб-сайт Tiledrawer был заброшен, репозиторий Github все еще существует, но также неактивен: github.com/migurski/Tile-Drawer (см. Также в вики OSM )
chrki

11

Я нашел именно то, что мне было нужно: Maperitive . Это приложение может загружать данные OSM (* .osm может быть сохранен с помощью JOSM fi) и отображать красивые изображения на основе очень гибких и настраиваемых правил.


Я обнаружил, что Maperitive зависает, если я пытаюсь загрузить файл .osm.bz2 или даже файл .osm.pbf. Файлы, которые я пробовал, занимали около 185 МБ, поэтому они не соответствуют размеру файла planet.osm.bz2 (19 ГБ!), Который мне действительно нужен. Как вы загрузили файлы?
Дрю Ноакс

Дрю, думаю, я пробовал только гораздо меньшие площади.
арконавт

Maperitive является закрытым исходным кодом, построен на основе .Net, не работает на Linux. Но у него есть одно преимущество перед Mapnik: более простая стилизация.
Вануан

3
Я предлагаю TileMill в качестве альтернативы с открытым исходным кодом.
Вануан

9

Две возможности, в зависимости от того, какую часть данных OSM вы хотите редактировать.

Одним из них является размещение собственного OSM-сервера с копией данных, которые вы можете свободно редактировать. Программное обеспечение для этого известно как «Порт Rails», его можно найти здесь: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Другой способ - использовать плиточную картографию OSM в качестве фона для ваших собственных данных. Я не совсем компетентен, чтобы ответить на этот вопрос, но вы можете обнаружить, что такие инструменты, как QGIS (http://www.qgis.org), могут обеспечить отслеживание новых фигур на основе базовой карты OSM.


8

Создание карты делится на несколько этапов:

  • ввод геоданных (точек, линий и полигонов с соответствующими тегами)
  • стиль (указать внешний вид объекта на карте)
  • рендеринг в растровое изображение (преобразование геоданных и стиля в изображение с помощью программного обеспечения рендеринга)

Вы хотели бы инструмент, который делает все причуды за простой пользовательский интерфейс. Но, к сожалению, такого инструмента нет (надеюсь, будет). Таким образом, вы должны выбрать специальный инструмент для каждого шага.

Я использую следующую комбинацию инструментов / рабочего процесса:

Ввод / загрузка геоданных

  • Редактор JOSM :
    • скачать карту с сервера osm
    • редактировать карту
    • загрузите свои изменения на сервер osm (почему вы не поделитесь своей работой?)
    • сохранить карту в файл * .osm
  • PostGIS / osm2pgsql
    • обновить файл стиля импорта, если это необходимо
    • импортировать карту на локальный сервер

Если вы не хотите делиться своей работой, вы можете настроить локальный OSM-сервер и заставить JOSM работать с ним (делая ненужным сохранение карты в файл * .osm и использование osm2pgsql). Тем не менее, помните о лицензии, если вы используете части данных OSM.

стайлинг

Стайлинг состоит из двух этапов:

  • настроить слои / источник данных
  • настроить линии / полигоны / точки / вывод текста.

Существует два формата для оформления карты: «сырой» файл стиля mapnik и CartoCSS.

  • Mapnik - это библиотека рендеринга, которая поддерживает сайт OSM.
    • Настройка и редактирование файла стиля mapnik
    • откройте файл стиля в программе просмотра mapnik

«Сырой» файл стиля Mapnik громоздок для редактирования, а CartoCSS - более простой сигнал. CartoCSS (ранее Cascadenik) можно конвертировать в файл стиля mapnik. Tilemill - это инструмент, который я использую для редактирования / предварительного просмотра CartoCSS.

  • Tilemill .
    • Стиль / предварительный просмотр вашей карты в плитке
    • экспорт в файл mapnik * .xml.

оказание

  • Пользовательский скрипт на python для mapnik
    • Обновление ограничительной рамки / уровня масштабирования / размера
    • отобразить карту в файл * .png.

[Необязательно] Выведите вашу карту онлайн

Конечно, вы можете просто использовать большой * .png файл для вашей карты, но представьте, сколько времени потребуется для его загрузки! Таким образом, вы разбили свою карту на плитки с разным уровнем масштабирования.

  • Tilemill -> Mapnik -> MBTiles -> Карта

    • Вы можете вывести свою карту в онлайн, используя Tilemill и MapBox.

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

Итак, есть лучшее решение: CartoDB. CartoDB поддерживает CartoCSS. С ним вам не нужно ничего устанавливать локально. Просто импортируйте в него свои данные, используйте CartoCSS и нажмите кнопку «Поделиться». Хотя есть ограничение на размер свободной базы данных. Но так как это открытый исходный код, вы можете разместить его самостоятельно. Есть еще одно ограничение: вы можете только визуализировать либо точки, либо линии, либо многоугольники.

PS

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


3

Посмотрите на http://codebrainz.ca/index.php/2009/09/27/install-mapnik-and-friends-on-ubuntu-904/ для подробного объяснения.


Спасибо, я мог бы на самом деле изучить это. Хотя я не парень в Linux, и это может оказаться слишком болезненным для меня :)
arconaut

2
фактически большинство инструментов, упомянутых в статье, будут работать на компьютере под управлением Windows или Mac.
Ян Тертон

3

Если вы ищете хороший пользовательский редактор карт, тогда взгляните на OCAD , это профессиональное программное обеспечение для рисования карт. Более старая версия доступна бесплатно на странице загрузки.

Он не имеет специальной поддержки OSM, но вы всегда можете использовать изображение, экспортированное из OSM, в качестве фона.


3

Существует более простой вариант для вас поиграться с данными Open Street Map в формате OSM. Вы можете попробовать FME из Safe Software (www.safe.com)

Для получения дополнительной информации вы можете прочитать о поддержке OSM здесь: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

Я пару раз использовал FME для создания демонстрационных наборов данных для обучения в своем регионе с использованием данных FME и OSM

~ SRG


3

Плитки OSM по умолчанию представлены в формате «Google Tiling». Они называются Tile Map Service (TMS). На данный момент вы не можете использовать QGIS для TMS. Но вы можете получить доступ к OSM-производным WMS, посмотрев на стороннюю службу. Некоторые ссылки здесь: http://wiki.openstreetmap.org/wiki/WMS#Public_WMS_Servers


1
Вы можете использовать плагин OpenLayers ( github.com/sourcepole/qgis-openlayers-plugin ) в QGIS для добавления плиток OSM.
Mattwigway

2

Вы можете использовать редактор стилей из Cloudmade (коммерческое подразделение OSM)

Бесплатно зарегистрироваться и использовать как личность.

С очень хорошим пользовательским интерфейсом сможете создать свой собственный стиль карты. Когда вы настроили свою карту с помощью цветов и т. Д., Вы можете использовать ее для встраивания или создания ссылки на страницу с вашей настроенной картой.

Смотрите сообщение в блоге http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (больше обновлений там)


Cloudmade не является частью OpenStreetMap: Является ли CloudMade частью OpenStreetMap?
scruss

1

Официальные карты OSM создаются в стиле TileMill и отображаются с помощью Mapnik. Оба инструмента чрезвычайно мощные и гибкие. Что хорошо для OSM, должно быть хорошо для вас!

К сожалению, процедура установки для TileMill усложняется, по крайней мере, если вы хотите визуализировать данные OSM. Существует множество описаний для Ubuntu или Mac , но комментарии на форумах показывают, что эта процедура сложна для Windows.

Подробное описание рендеринга карт с помощью TileMill для Windows вы найдете в вики TopoMapCreator .

Следует классическая процедура:

  • Шаг A: Загрузка и установка необходимого программного обеспечения (в основном, база данных Postgresql / PostGis)
  • Шаг B: Загрузка и импорт данных OSM в базу данных
  • Шаг С: Загрузка и обработка полигонов земли
  • Шаг D: Создание проекта TileMill
  • Шаг E: Стилизация и экспорт карты с TileMill

Больше на вики TopoMapCreator .


1

Еще один способ создания пользовательских карт с данными OSM - с помощью библиотеки Mapsense.js и векторных плиток Mapsense Earth. На сайте http://styler.mapsense.co/ имеется пользовательский интерфейс для выбора цветов, а на developer.mapsense.co/examples/ - демонстрации css и javascript.

Одним из преимуществ API, таких как этот, является то, что вы можете добавлять все что угодно с помощью javascript / d3 (спутниковые изображения, другие гео / топойсон и т. Д.).

Полное раскрытие: я работаю в Mapsense. :)


0

Если вы хотите просто создать статическое изображение карты, вы можете проверить этот способ, чтобы создать файл .svg inkscape из .osm s, хотя это довольно медленно. Затем вы можете открыть .svg, или если вы хотите конвертировать его в любой другой формат (png?) Или даже загрузить его в 3d studio или Blender:) ...

(Кроме того, JOSM, похоже, имеет плагин, который выполняет osmarender, но мне не удалось запустить его в этот раз, когда я пытался ...)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.