Як я можу малювати та візуалізувати власні карти на основі даних OSM?


35

Я хотів би мати можливість використовувати дані openstreetmap для конкретного регіону в якості джерела і "витягувати" з цього карту поліпшення інфраструктури - переважно доріг.

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

Я не знайомий з багатьма програмами ГІС. Насправді не так важливо мати дані OSM в якості джерела, це може бути і супутникове зображення. Важливі речі - гнучкий малюнок, прив’язаний до реальних координат та візуалізація карти.

З чого я міг почати?

Сподіваюся, це питання має сенс тут :)


На яку платформу ви дивитесь? Чи можете ви використовувати Карти Google для малювання фігур?
Jared Updike

Джареде, ти маєш на увазі простий інтерфейс "Мої карти" Карт Google? Цього мені недостатньо :) Мені потрібен набагато більший рівень деталізації. Або ти маєш на увазі щось інше?
арконавт

Для якої частини світу ти хочеш це зробити? У загальнодоступному доступі, в деяких частинах світу, існує велика кількість дорожніх даних.
djq

Відповіді:


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. Я зараз не хочу цього робити, можливо, я занадто ледачий :)
арконавт

Я читав, що ви можете запускати зображення EC2 на власній машині за допомогою VirtualBox.
Джеймс

Веб-сайт Tiledrawer був відмовлений, репортаж Github все ще є, але також неактивний: github.com/migurski/Tile-Drawer (див. Також у OSM Wiki )
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 з копією даних, яку ви можете вільно редагувати. Програмне забезпечення для цього відоме як "Порт рейки", можна знайти тут: 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.

  • Кахельна плитка .
    • Стиль / попередній перегляд вашої карти в плитці
    • експорт у файл mapnik * .xml

Візуалізація

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

[Необов’язково] Донесіть свою карту до Інтернету

Звичайно, ви можете просто використовувати великий * .png файл для своєї карти, але уявіть, скільки часу знадобиться для завантаження! Таким чином, ви розділите свою карту на плитки на різних рівнях збільшення.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Ви можете принести свою карту в Інтернеті за допомогою Tilemill і MapBox.

На жаль, щоб оновити свою карту відповідно до нових редагувань OSM, вам доведеться все-таки завантажити та надати її локально.

Отже, є краще рішення: CartoDB. CartoDB підтримує CartoCSS. З ним не потрібно нічого локально встановлювати. Просто імпортуйте в них свої дані, стиліруйте CartoCSS та натисніть кнопку "Поділитися". Однак є обмеження на вільний db. Але оскільки це відкритий код, ви можете розмістити його самостійно. Є ще одне обмеження: ви можете візуалізувати лише точки або лінії або багатокутники.

PS

У кожного інструмента є свої обмеження, тому спробуйте експериментувати.


3

Подивіться на http://codebrainz.ca/index.php/2009/09/27/installing-mapnik-and-friends-on-ubuntu-904/ для детального пояснення.


Дякую, я можу насправді розібратися в цьому. Хоча я не хлопець з Linux, і це може виявитися для мене занадто болісно :)
arconaut

2
насправді більшість інструментів, згаданих у статті, працювали б на машині Windows або Mac.
Ян Тертон

3

Якщо ви шукаєте хороший користувальницький редактор карт, то подивіться на OCAD , це професійне програмне забезпечення для малювання карт. На сторінці завантаження доступна безкоштовна версія.

У ньому немає жодної спеціальної підтримки для OSM, але ви завжди можете використовувати зображення, експортовані з OSM як фон.


3

Існує простіший варіант, коли можна пограти з даними Open Street Map у форматі OSM. Ви можете спробувати FME з безпечного програмного забезпечення (www.safe.com)

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

Я декілька разів використовував FME для створення демонстраційних наборів даних для тренінгу для мого регіону, використовуючи дані FME та OSM

~ СРГ


3

Плитки OSM за замовчуванням у форматі "плитка Google", вони називаються Tile Map Service (TMS). На даний момент ви не можете використовувати QGIS для TMS. Але ви можете отримати доступ до WMS, похідного від OSM, переглянувши іншу сторонній сервіс. Деякі з них пов’язані тут: 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, повинно бути добре для вас!

На жаль, процедура налаштування TileMillis є складною, принаймні, якщо ви хочете зробити дані OSM. Описів для Ubuntu або Mac дуже багато , але коментарі на форумах показують, що процедура є складною для Windows.

Ви знайдете детальний опис візуалізації карт за допомогою TileMill для Windows у Вікі-програмі TopoMapCreator .

Згідно з класичною процедурою:

  • Крок A: Завантаження та встановлення необхідного програмного забезпечення (головним чином база даних Postgresql / PostGis)
  • Крок В: Завантаження та імпорт даних ОСМ у базу даних
  • Крок C: Завантаження та обробка наземних полігонів
  • Крок D: Створення проекту TileMill
  • Крок Е: Створення та експорт карти за допомогою TileMill

Детальніше на Wiki of TopoMapCreator .


1

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

Однією з переваг такого API є те, що ви можете додавати все, що завгодно, за допомогою JavaScript / d3 (супутникові знімки, інші гео / топойсони тощо).

Повне розкриття інформації: Я працюю в Mapsense. :)


0

Якщо ви хочете просто створити статичне зображення карти, ви можете перевірити цей спосіб, щоб створити файл .svg inkscape з .osm s, однак це дуже повільно. Потім ви можете відкрити .svg або, якщо ви хочете перетворити його в будь-який інший формат (png?) Або навіть завантажити його в 3d студію або Blender:) ...

(Крім того, у JOSM, здається, є плагін, який робить osmarender, але мені не вдалося запустити його один раз, коли я спробував ...)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.