Вопросы человека не имеющего опыта в использование OSM.

Прошу прощения, но я так и не смог сформулировать тему для топика :(.

Доброго времени суток. Тут недавно с друзьями решили реализовать свой картографический сервис. Взяли карандаш бумагу и поняли что ничего не знаем о таких сервисах :open_mouth: .
Несколько дней блуждание по документации не дали результата. Поэтому этот форум наша последняя надежда.
Собственно вопросы.
Как разделаются объекты в OSM? (дома, дороги и т.д.) и что находится на загруженных тайлах?
Есть ли возможность выгрузке объектов в MS SQL или возможно только конвертировать XML и ложить в базу?

Прошу прощения если вопросы были неадекватные!! Не судите строка мы новички.

  1. Точки - обладают координатами, Линии - соединяют точки, Отношения - содержащие в себе список точек и/или линий. У любого объекта есть его “характеристики” - теги.
  2. В тайлах отображаются объекты из базы в зависимости от их тегов.
  3. Хранить базу можно хоть в текстовых файлах. Но зачем ездить на уродском велосипеде, тем более если не понимать его конструкциию. Для PG написано кучу скриптов и он объезжен с разных сторон.

Я извиняюсь, что такое PG? И почему велосипед? Дело в том, что мы захотим проложить маршрут, где мы возьмём определённые точки, если мы о них не будем знать?

база данных postg…

Вкратце: есть понятия “точка”, “ломаная линия”, “отношение”. У каждого из этих объектов есть перечень разных свойств (тегов). Каждый тег имеет название и значение.

Вот вроде подробно написано про данные http://habrahabr.ru/post/146503/

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

тайл - это маленький файлик с картинкой. На картинке нарисован кусочек карты соответствующего масштаба. Из тайлов склеивается карта при отображении её, например, в броузере.

Это порноканал со спутника Astra 4A (бывший “Сириус”). Спутник висит на геостационарной орбите в позиции 4,8 градусов восточной долготы. Вещание в Ku-диапазоне на частоте 1211 МГц, в горизонтальной поляризации, символьная скорость 27500, FEC 5/6, стандарт DVB-S / MPEG-2. Канал кодирован в системе Cryptoworks.

:D:D:D

Это PocketGIS

Так, начнем вот с этой схемы
http://wiki.openstreetmap.org/wiki/Component_overview
Принятую в OSM структуру хранения данных передает формат OSM XML http://wiki.openstreetmap.org/wiki/OSM_XML
В качестве СУБД для работы с данными OSM принята PostgreSQL, для работы с которой существует множество готовых инструментов.
Для выгрузки подмножеств данных служат разные инструменты: для пространственных выборок - http://wiki.openstreetmap.org/wiki/Osmosis для логических - http://wiki.openstreetmap.org/wiki/Overpass_API
Для роутинга есть http://wiki.openstreetmap.org/wiki/OSRM

Тайлы являются всего лишь графическим отображением картографической информации, хранящейся в базе, они хранят только изображение, и создаются такими средствами как http://wiki.openstreetmap.org/wiki/Maperitive и http://wiki.openstreetmap.org/wiki/Mapnik

Атрибутивная информация передается отдельно, например - в формате GeoJSON (который поддерживается фреймворками визуализации типа OpenLayers, Leaflet), как-то вот так: http://wiki.openstreetmap.org/wiki/Overlay_API

Ознакомьтесь, потом спрашивайте дальше.

Откуда можно загрузить XML со всеми обьектами? И откуда можно подгружать тайлы (мне понравились у MapSurfer.net)?

Вы намерены не читать то, что вам написали? Тогда ответы просто теряют смысл.

Для этого служит инструмент Osmosis
Существуют также относительно готовые варианты:
http://gis-lab.info/projects/osm_dump/ (это не тот формат XML, но те данные)

Ответ зависит от того, что вы собираетесь с ними делать.
Потому что если просто хотите чтобы этот слой был вашей базовой картой на стороне пользователя, то это вопрос “как подключить слой mapsurfer к Openlayers или Leaflet”. Если же задача иная, то и вопрос другой, а ответ - тем более.

Основной источник всех данных по планете тут - http://planet.openstreetmap.org/
Но т.к. всю планету обрабатывать немного накладно, есть несколько сервисов, предоставляющие нарезки этих данных по регионам. Например тут - http://gis-lab.info/projects/osm_dump/

Весь мир http://planet.osm.org/
Россия и регионы http://gis-lab.info/projects/osm_dump/

Добавить в любой движок (Leaflet, OpenLayers) адрес вида http://129.206.74.245:8001/tms_r.ashx?x={x}&y={y}&z={z}

если у вас задача распарсить XML и записать результат в любимую базу вызывает трудности, то вам не с форума надо начинать, а с поиска программиста… Ибо без него вы все равно ничего не сделаете.

))) Распарсить не проблема… Я просто боюсь напутать со связями объектов.

BushmanK всё что вы дали я прочитал но понимание это не дало к сожалению. Не буду писать почему … ) Не хочется обижать людей, писавших эту документацию.

Вспоминается старый анекдот: чего тут думать - прыгать надо. :slight_smile: Как только прыгните правильно - картинка нарисуется правильная.

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

Вы сами архитектурно свой будущий сервис уже представляете?

Правильно сказали - а вы не бойтесь) Как вариант порисуйте немного свой район. Тогда и поймете что к чему.

Данные осм по своей структуре приближаются к описанию местности на естественном языке (при этом весьма своеобразном), а не к объектной модели с иерархией наследования или реляционным отношениям.

Архитектурно ещё сложно представить. Ибо нужно разобраться, что и как. К примеру, ну поучил я XML, создал структуру в БД, забил значениями. А дальше непонятно. Если я буду грузить тайлы с одного сервера, а объекты из своей бд это будет явно не самый лучший вариант. Возможно, можно кэшировать часть данных. Тогда встаёт вопрос как прорисовывать объекты и на сколько это будет трудозатратно? :open_mouth:

Всё зависит от конкретных технических условий. Описанный вариант совершенно нормален и часто применяется.

Мне пришла та же мысль.