glosm - 3D рендер для OpenStreetMap

Неп то что-бы я критиковал, но “ни фига не поняла” (С)
Ещё раз для эстонцев повторю - в /etc/ld.so.conf путь куда надо прописан, другие, в смысле нормальные, софтины из /usr/local/bin пущаются без проблем.
Собираю я не в “песочницу”, а куда по дефолту прописаны патчи в мейкфайле (хотя сборка в песочницу - замечательная идея - надо сляпать ебилд).
Дёргать руками, или как то иначе, ldconfig после make inastall, лично я - в смысле ИМХО, считаю моветоном (в смысле кривыми руками автора мейкфайла).

ЗЫ: Вопрос, а после того как запустилось чего с ним делать? В смысле загрукзил voronezh.osm - вижу горизонт, вижу на горизонте какие то фигли, а как попасть в сам Воронеж - не понятно :slight_smile:

ЗЫ2: Ещё одну багофичу заметил - в полёте возможно “ныряние” ниже текущей поверхности - ИМХО надо с этим делом как-то бороться (например “отражать” по типу “блинчиков”)

ЗЫ: С “полётом”, как бы, разобрался - с “попаданием” в нужное место - нет. :slight_smile:

ЗЫ2: Добреёл до обстановки возле дома - ИМХО ещё и с масштабом по вертикали чгой-то не того :slight_smile: Одно-двуэтажные здания высоковаты, высотки - мелковаты.

Если вы набираете руками “make install”, то вы уже собираете в песочнице, а не в дистрибутив, следовательно сами и позаботьтесь о том что бы ручками набрать ldconfig, потому что повторю ещё раз: это не задача сборки, это задача упаковки в пакет средствами пакетного менеджера. В /usr/local собирается всё только в том случае, если собирать что-то руками на коленке для “чисто_напопробовать_собираемость”, за всё что лежит там никто ответственности кроме вас самого не несёт.

Правила хорошего тона сборки софта: 1) после rm -rf /usr/local ни один софт не перестал работать или как то изменил своё поведение, 2) каждый исполняемый файл в системе принадлежит какому то конкретному пакету с конкретной версией.

p.s. прежде чем наезжать по поводу “эстонцы” и “я тут ручками слепил” изучите мантейнерс-гид по своему дистрибутиву и правильному процессу сборки софта.

Я понял так, что первый этаж несколько выше остальных. ИМХО, не лишено смысла.

Одноэтажным зданиям кроме гаражей (можно, в принципе, добавить и остановки буде у них свой building=) прибавляется метр (по-хорошему надо не только одноэтажным, но там надо min_level тоже учитывать, а мне пока было лень) - это полезно одноэтажным магазинам (которые на самом деле даже 5 метров) и деревенским домам. Хотите однозначной интерпретации - меряйте и проставляйте height. Высотки нормальные, но обычно у них 1-2 технических этажа которые не считают в levels. Нужно придумать тэг и отмечать их тоже.

Уболтали, сам дурак - приношу свои извинения посчитавшим себя обиженными :slight_smile:

ЗЫ: Вопроос по высоте у меня не в одноэтажках, а в том, что высотки, даже пятиэтажки, у меня отоброжаются низенькими и толстенькими.

ЗЫ2: make uninstall только у меня не срабатвает?

А просто техэтажи и цокольные не проставлены нигде, наверное.
У меня в осмволкере тем, у кого не проставлены, прибавляется, вроде, по 3 метра. :3

Правда, из-за этого возникает проблема с киосками и тп.

panic, а какой именно участок интересует? Где пятиэтажки низкие.

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

cmake не поддерживает make uninstall, см. его FAQ.

Не знаю, как насчет восприятия, но тут http://latlon.org/buildings?zoom=16&lat=51.64343&lon=39.23548&layers=BFT интересующий меня участок рендерится довольно похоже на правду, а в glosm мои пятиэтажки похожи на квадратные бруски :slight_smile:

Померяйте точные длины/высоты на местности и сравните с тем что рисует glosm - тогда будет о чём говорить.

Холодно блин вокруг дома с рулеткой бегать :slight_smile:
http://tipdoma.com/poisk/?materials=52&years=57&regions=66&levels=61&types=50 несколько типовых проектов, ни одна пятиэтажка не выглядит квадратом если рассматривать с боку

Дайте фото с угла дома. Лучше две штуки. Пропорции по фото определить и сравнить можно без проблем :3

Еще раз напоминаю про цокольный этаж и чердак/техэтаж. AMDmi13, они у тебя учитываются в каком-либо виде?

Для openSUSE (текущей и предыдущей версий) glosm собирается в моём уютненьком домашнем репозитарии на openSUSE Build Service. Для инсталяции достаточно воспользоваться поиском по репозитариям http://software.opensuse.org/search или вручную добавить репо и поставить (для 11.2):


zypper ar -f http://download.opensuse.org/repositories/home:/VasilevMaxim/openSUSE_11.2/ home:maksvasilev
zypper install glosm

Для 11.3 соответственно поменять в URL номер версии.

Для Factory:


zypper ar -f http://download.opensuse.org/repositories/home:/VasilevMaxim/openSUSE_Factory/ home:maksvasilev
zypper install glosm

Обновился - всё заработало. Скачал всё приморье - всё работает! Скорость - удобно.

Попробовал на московской области http://gis-lab.info/data/osm/mosobl/mosobl.osm.bz2 - грузит, рисует основное окно, потом вываливается в корку:

Program received signal SIGSEGV, Segmentation fault.
0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++() () from /home/serega/glosm/glosm/libgeomgen-default/libgeomgen-default.so
(gdb) bt
#0 0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++() () from /home/serega/glosm/glosm/libgeomgen-default/libgeomgen-default.so
#1 0xb7f94454 in CreateSmartVerticalLines(Geometry&, std::list<Vector2, std::allocator<Vector2 > > const&, int, int, float, OsmDatasource::Way const&) ()
from /home/serega/glosm/glosm/libgeomgen-default/libgeomgen-default.so
#2 0xb7f994b2 in WayDispatcher(Geometry&, OsmDatasource const&, OsmDatasource::Way const&) () from /home/serega/glosm/glosm/libgeomgen-default/libgeomgen-default.so
#3 0xb7f99a72 in DefaultGeometryGenerator::GetGeometry(Geometry&, BBox const&) const () from /home/serega/glosm/glosm/libgeomgen-default/libgeomgen-default.so
#4 0xb7fd75de in GeometryTile::GeometryTile(Projection const&, GeometryDatasource const&, Vector2 const&, BBox const&) () from /home/serega/glosm/glosm/libglosm-client/libglosm-client.so
#5 0xb7fd6c90 in GeometryLayer::GeometryLayer(Projection, GeometryDatasource const&) () from /home/serega/glosm/glosm/libglosm-client/libglosm-client.so
#6 0x0804a22c in real_main(int, char**) ()
#7 0x0804a43c in main ()
(gdb)

Просто москва http://fmesh.ru/osm/areas/moscow.osm.bz2:
Loading…
Exception: parsing error

И ещё, пожелание. А можно ли прикрутить карту рельефа? Это было бы совсем прекрасно. http://rutracker.org/forum/viewtopic.php?t=1686360
Я так понимаю liosha брал эти данные из открытых источников.

Рельеф бы очень сильно добавил реалистичности…

У меня не повторяется. Какая система, архитектура, md5 файла? Можете пересобрать с -DCMAKE_BUILD_TYPE=Debug и показать bt full ?

Этот файл битый.

Это в планах, но нескоро.

У меня не повторяется. Какая система, архитектура, md5 файла? Можете пересобрать с -DCMAKE_BUILD_TYPE=Debug и показать bt full ?

На выходных не будет. В понедельник постораюсь на работе сделать.

Здорово. Про вертикальный масштаб неправда все - он в порядке.
Только я не понял, зачем у меня мышку отбирают, когда я его запускаю >(

Потому что иначе она будет вылезать за пределы окна и нельзя будет повернуться куда хочется.

Это понятно, но так не полноэкранному приложению вести себя странновато - его получается даже свернуть мышкой нельзя.
Может быть можно какую-то кнопку хотя бы предусмотреть, как это сделано в vmware и пр.

Все кнопки уже есть в WM. Может стоит в fullscreen по умолчанию запускать, но мне такая самодеятельность кажется странной.
Ближе к qt версии что-нибудь придумаю.