Данные из OpenStreetMap в Google Earth

 
RU barvinsky #19.03.2013 21:50
+
-
edit
 

barvinsky
unkAlien

втянувшийся

Привет всем
Как-то раз захотелось видеть дорожный граф из openstreetmap в гуглоземле. В последней есть своя карта, но её качество в глубинке совершенно убогое. Дело было на работе, делать было нечего, готовых вариантов я не нашел - и вот получилась такая служба: osm2kml . Есть куча уже существующих вариантов наложения тайлов из OSM или других карт в гуглоземлю, но тут экспортируется именно геометрия. Есть дороги, городки, домики всякие трехмерные, речки-озера - в общем все основное. Естественно, по всей земле - от Австралии до деревни Гадюкино. Для использования надо просто скачать по ссылке KML-файл и открыть его в гуглоземле. Перед выводом пользователю лишние точки, не влияющие на отображение при данном разрешении - выкидываются, а также все жмется в KMZ, поэтому траффика надо совсем немного.

Так выглядит кусок нашего Челябинска (В OSM почти везде, включая деревни, проставлена этажность домов - что дает симпатичные виды):


А вот так выглядит карта издалека:


Возможно будет кому-то полезно а может быть и нет )
 19.019.0
+
-
edit
 

trello

новичок
barvinsky> Так выглядит кусок нашего Челябинска (В OSM почти везде, включая деревни, проставлена этажность домов - что дает симпатичные виды):


Что-то никак не найду где в OSM проставляется этажность и как её экспортировать?
 
+
-
edit
 

barvinsky
unkAlien

втянувшийся

barvinsky>> Так выглядит кусок нашего Челябинска (В OSM почти везде, включая деревни, проставлена этажность домов - что дает симпатичные виды):
trello> Что-то никак не найду где в OSM проставляется этажность и как её экспортировать?
В OSM все данные хранятся в виде отношений (relation), путей (way) и точек (node). Здание - это замкнутый путь, имеющий тег building=yes. Например:

code text
  1. <way id="33213941">
  2.     <nd ref="375759771"/>
  3.     <nd ref="374235361"/>
  4.     <nd ref="374596382"/>
  5.     <nd ref="374472171"/>
  6.     <nd ref="375759771"/>
  7.     <tag k="addr:city" v="Магнитогорск"/>
  8.     <tag k="addr:housenumber" v="111/1"/>
  9.     <tag k="addr:postcode" v="455037"/>
  10.     <tag k="addr:street" v="проспект Карла Маркса"/>
  11.     <tag k="building" v="yes"/>
  12.     <tag k="building:levels" v="5"/>
  13.   </way>

Тут мы видим здание из замкнутого четырехугольника. Тег building:levels как раз и означает высотность здания в этажах. Для визуализации я просто умножаю это число на три - это не всегда верно, но истинная высота в метрах (тег height) почти нигде не указана. Если такого тега нет, то этажность здания неизвестна и я рисую его плоским.

Подробнее про теги openstreetmap можно почитать тут:

RU:Map Features - OpenStreetMap Wiki

В OpenStreetMap нет ограничений на теги, которыми могут быть помечены элементы OSM (Точки , Линии или Отношения ). Вы вольны использовать любые теги, пусть даже придуманные Вами. Однако, выгоднее использовать некий рекомендованный набор объектов и соответствующих им тегов. На этой странице содержатся все основные одобренные объекты и соответствующие теги. // wiki.openstreetmap.org
 

Поэкспериментировать с запросами к Overpass API можно тут:
 19.019.0
+
-
edit
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru