Отображение данных OSM в Google Earth

во как, спасибо.
сейчас пока что не могу с фильтрацией osmfilter разобраться. что там нужно фильтровать-то? мне нужно оставить только дома и улицы например. использую вот этот osm. https://mapzen.com/data/metro-extracts/metro/moscow_russia/

вообще говоря, мне нужно получить следующий результат в google earth. с конвертированием адресов в координаты потом разберусь, нужно понять вообще, что нужно сделать, чтобы у меня был локальный файл kml с 3D зданиями по конкретному городу.
пример

Если вы собрались геокодировать самостоятельно, то ищите готовые геокодеры на данных ОСМ (вот вчера Zverik об одном из заикнулся), они там сами всё отфильтруют. Изобретать велосипед я бы вам не советовал.

хорошо. но как все же мне получить kml файл с 3D зданиями конкретного города, как на скрине выше. нашел вот это http://barvinsky.osm.rambler.ru/ но он подкачивает из сети постоянно данные. нужно локально

:slight_smile: тогда гуглите osm2kml

не уверен, что я качаю тот osm, что мне нужен. в идеале мне нужно получить изображение как на скрине выше.
я должен найти osm соответствующий и сконвертировать в kml? где подобные можно найти?

Ilya Zhavoronkov
Т.к. никто не торопится отвечать, предположу что нигде нет такого готового файла. Данных в ОСМ очень много, но выходной продукт зависит непосредственно от тех, кто пишет программы.

Для манипуляций в 2D много инструментов, для 3D - не очень, т.к. ОСМ по сути своей двумерный (координаты 2D); трёхмерность в нем хранится не в координатах, а в тегах (высота и/или этажность), т.е. нужна специальная обработка.

Подождите, может ещё кто-то ответит, но если нет - выход только самому писать программу.

Сомневаюсь что есть готовая программа для конвертации OSM 3D.
Вроде в josm-овский плагин Kendzi3D хотели добавить экспорт, но чем это закончилось - не знаю.

В общем я поискал про этот конкретный проект. Есть некий скрипт который качал данные с OSM.API и выдав удобные для планетыЗ. Потом автору дали доступ на рамблере, чтобы напрямую данные качать через Горыныча.
Аналогичных (osm2kml) скриптов навалом, но они переработывают сразу весь дамп. А прелесть того была в том, что он брал только видимую часть. Естественно запихнуть всю Россию в планетаЗ не выйдет, так что автору вопроса придётся покодить и написать серверную часть.

Ilya Zhavoronkov:

Какая конечная цель представления зданий из OSM в Google Earth? Как всё это предполагается использовать?

Конечная цель - необходимо в google earth получить представление зданий в удобном виде с указанием высот. Далее выбираются здания на основании некоторых требований в конкретной области. То есть, нужно открыть район, визуально прикинуть какие здания подходят в том или ином случае в зависимости от того, насколько широкие и высокие соседние.
почему именно google earth, потому что у нас все пользуются только этой программой, там уже куча меток, комментариев и пр, переносить и переучивать коллег никто не будет. единственное похожее на правду увидел в плагине, что на рамблере лежит. но у нас пишет ошибку о невозможности подключиться к сети у многих. поэтому нужно как-то выкачать или закэшировать в файл kml. желательно сразу весь город Москва, а область по районам.

откуда вообще этот плагин подсасывает данные? я в свободном доступе не смог найти подобные карты. можно их как-то выкачать?

Он их берет из OSM.API перерабатывает и отдаёт планетеЗ. Это всё те же данные, что и planet.osm.org, но тут ключевое слово перерабатывает. Притом на лету и ни куда не сохраняет. Поэтому строгий ответ на ваш впорос, нет, скачать их негде.

но ведь http://planet.osm.org/ позволяет скачивать карты. почему в скаченных вариантах нет 3d зданий?

Не карты, а геоданные. И 3D здания там есть:
Как — https://wiki.openstreetmap.org/wiki/Simple_3D_buildings
Пример данных — http://www.openstreetmap.org/relation/3755805#map=18/55.77660/37.58126
Что можно получить на выходе, планетаЗ отдыхает — http://demo.f4map.com/#lat=55.7766962&lon=37.5813613&zoom=19&camera.phi=73.339

Они там есть. Только не в том виде, в котором вы себе это понимаете. В OSM трехмерные здания описываются в виде наборов плоских контуров (проекций на горизонтальную плоскость), каждый из которых имеет свои свойства: количество этажей в данной секции здания и/или его высота в метрах, этаж, с которого начинается секция (если начинается не от земли) и так далее. То же касается формы крыш - они хранятся в виде атрибутов, а не трехмерной геометрии. И уже всякого рода софт по этим данным создает трехмерную геометрию.
Аналогичная модель, между прочим, есть и в Google Earth: если вы нарисуете там прямоугольник, то чтобы превратить его в трехмерный параллелепипед, символизирующий здание, вам не нужно будет создавать какие-то точки и ребра в пространстве, а достаточно указать высоту параллелепипеда и свойство “продолжать вертикальные грани до земли”.

так можно как-то в google maps получить карту какого-нибудь города с визуализацией высоты зданий? можно без формы крыш даже.

Таки можно, вы же сами показывали скрин. Вам уже не раз рассказывали как эти 3D хранятся в osm. Отвечая на следующий вопрос: готового - скачал и запустил нет, надо программировать.

Конечно, можно. Сконвертировать геометрию в KML, пересчитать этажи в метры, приписать получившуюся высоту к координатам для каждого объекта и т.п…
Действительно, это требует программирования.
Без программирования это, вероятно, можно сделать только в софте типа этого http://www.safe.com/how-it-works/ (хотя, по сути, это тоже визуальное программирование).

Форкал недавно вышеозначенный osm2kml для того, чтобы объекты инфраструктуры смотреть на гугл-земле:

https://github.com/progserega/osm2kml

В том числе 3D там присутствует. Подстанции в виде цветных домиков разной высоты, опоры в виде палочек и ВЛ в виде полосок, привязанных к вершинам палочек-опор. :slight_smile:
При должном желании и умении - можно на основании этого кода перепилить скрипт под ваши задачи.