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

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

Попробовал на московской области 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 версии что-нибудь придумаю.

Просто надо сделать как во всех 3D просмотрщиках и редакторах, чтобы поворот камеры осуществлялся когда зажата правая клавиша мышки - и тогда пусть указатель пропадает и захватывается, а когда отпускаем, то возвращается туда где был изначально. Это 100% более верное поведение.

Собралось под Debian абсолютно без проблем, работает шустренько, даже на Intel GMA950 выдаёт 7 FPS.
Единственное - присоединяюсь к идее, что неудобно, когда отбирают мышь - скриншотики делать неудобно становится :slight_smile:

При чём тут скриншоты? Клавиатуру никто не отбирает.

ksnapshot без мышки малость неудобен :wink:

bt full:

Program received signal SIGSEGV, Segmentation fault.
0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++ (this=0xbfffe584) at /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/g+±v4/bits/stl_list.h:223
223 _M_node = _M_node->_M_next;
(gdb) bt full
#0 0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++ (this=0xbfffe584) at /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/g+±v4/bits/stl_list.h:223
No locals.
#1 0xb7f94454 in CreateSmartVerticalLines (geom=…, vertices=…, minz=0, maxz=4000, minslope=5, way=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:91
i = {_M_node = 0xf005d00}
prev = {_M_node = 0xbfffe690}
next = {_M_node = 0x0}
cosminslope = 0.99619469809174555
#2 0xb7f994b2 in WayDispatcher (geom=…, datasource=…, way=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:516
minz = 0
maxz = 4000
t = {_M_node = 0x0}
vertices = {<std::_List_base<Vector2, std::allocator<Vector2 > >> = {
_M_impl = {<std::allocator<std::_List_node<Vector2 > >> = {<__gnu_cxx::new_allocator<std::_List_node<Vector2 > >> = {}, }, _M_node = {_M_next = 0xf005d00,
_M_prev = 0xf007278}}}, }
#3 0xb7f99a72 in DefaultGeometryGenerator::GetGeometry (this=0xbfffe978, geom=…, bbox=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:553
w = {_M_current = 0xabe3c248}
ways = {<std::_Vector_base<OsmDatasource::Way, std::allocatorOsmDatasource::Way >> = {
_M_impl = {<std::allocatorOsmDatasource::Way> = {<__gnu_cxx::new_allocatorOsmDatasource::Way> = {}, }, _M_start = 0xab47e008, _M_finish = 0xac1a29f0,
M_end_of_storage = 0xac87e008}}, }
temp = {lines
= {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0xa487a008, _M_finish = 0xa70985e0,
M_end_of_storage = 0xa787a008}}, }, triangles = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0xed01e58, _M_finish = 0xeec94d4,
M_end_of_storage = 0xf001e58}}, }, quads = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0xa1879008, _M_finish = 0xa35c28a8,
M_end_of_storage = 0xa4879008}}, }}
#4 0xb7fd75de in GeometryTile (this=0xbfffe958, projection=…, ds=…, ref=…, bbox=…) at /home/serega/glosm/glosm/libglosm-client/src/GeometryTile.cc:37
g = {lines
= {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
M_end_of_storage = 0x0}}, }, triangles = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
M_end_of_storage = 0x0}}, }, quads = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, }}
translated = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x1,
_M_end_of_storage = 0x1}}, }
#5 0xb7fd6c90 in GeometryLayer (this=0xbfffe954, projection=…, datasource=…) at /home/serega/glosm/glosm/libglosm-client/src/GeometryLayer.cc:32
No locals.
#6 0x0804a22c in real_main (argc=2, argv=0xbfffea94) at /home/serega/glosm/glosm/viewer/Main.cc:238
osm_datasource = { = {vptr.OsmDatasource = 0xb7fcde08}, = {}, nodes = {_vptr.id_map = 0xb7fcde50, static chunk_size = 1048576, nbuckets = 2097152,
buckets = 0xb2348008, count = 2631861,
chunks = {<std::_Vector_base<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*> >> = {
_M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*>> = {<__gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*>> = {}, }, _M_start = 0x8073198, _M_finish = 0x80731a4, M_end_of_storage = 0x80731a8}}, }, last_chunk_free = 513867, current_ptr = 0xb3371b58}, ways = {
_vptr.id_map = 0xb7fcde40, static chunk_size = 1048576, nbuckets = 262144, buckets = 0xb518e008, count = 344537,
chunks = {<std::_Vector_base<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*> >> = {
_M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*>> = {<__gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*>> = {}, }, _M_start = 0x8073148, _M_finish = 0x807314c, M_end_of_storage = 0x807314c}}, }, last_chunk_free = 704039, current_ptr = 0xb030c8b8}, relations = {
vptr.id_map = 0xb7fcde30, static chunk_size = 1048576, nbuckets = 8192, buckets = 0xde94388, count = 15313,
chunks = {<std::Vector_base<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*> >> = {M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*>> = {<gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*>> = {}, }, M_start = 0xdcd8298, M_finish = 0xdcd829c, M_end_of_storage = 0xdcd829c}}, }, last_chunk_free = 1033263, current_ptr = 0xadf90c5c},
InsideWhich = PreloadedXmlDatasource::NONE, tag_level
= 0, last_node
= {map = 0xbfffe8b8, current = 0xb3371b48}, last_way
= {map = 0xbfffe8dc, current = 0xb030c888}, last_relation
= {
map = 0xbfffe900, current = 0xadf90c48}, bbox
= {left = 349878700, bottom = 540648600, right = 403865200, top = 571340300}}
geometry_generator = { = {vptr.GeometryDatasource = 0xb7fa1e98}, datasource = @0xbfffe8b4}
layer = { = {vptr.Layer = 0xb7fded28}, = {}, tile = { = {vptr.Tile = 0xb7fded98, reference = {x = 376871950,
y = 555994450}}, = {}, lines
= {M_ptr = 0x0}, triangles = {M_ptr = 0x0}, quads = {M_ptr = 0x0}}, projection = {project
= 0x804c124 <viewer+4>,
unproject
= 0xb7ff5b00}}
height = 28512
#7 0x0804a43c in main (argc=2, argv=0xbfffea94) at /home/serega/glosm/glosm/viewer/Main.cc:262
No locals.
(gdb)

md5sum с отладочной информацией ( -DCMAKE_BUILD_TYPE=Debug ):
120d3a4416aa5d0b3e5e2ebce6454a23 ./glosm/viewer/glosm-viewer
Без:
md5sum glosm/viewer/glosm-viewer
900eaf8a19eb00be96adbf272ec5a73f glosm/viewer/glosm-viewer

Бинарник:
file glosm/viewer/glosm-viewer
glosm/viewer/glosm-viewer: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

Система:

emerge --info
Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.4.3, glibc-2.11.2-r3, 2.6.35-gentoo-r4 i686)

System uname: Linux-2.6.35-gentoo-r4-i686-Intel-R-_Pentium-R-_D_CPU_2.80GHz-with-gentoo-1.12.13
Timestamp of tree: Sun, 23 Jan 2011 17:00:22 +0000
distcc[29913] (dcc_trace_version) distcc 3.1 i686-pc-linux-gnu; built Oct 13 2009 16:39:59 [enabled]
ccache version 2.4 [enabled]
app-shells/bash: 4.1_p7
dev-java/java-config: 2.1.11-r1
dev-lang/python: 2.4.6, 2.6.5-r3, 3.1.2-r4
dev-util/ccache: 2.4-r7
dev-util/cmake: 2.8.1-r2
sys-apps/baselayout: 1.12.13
sys-apps/sandbox: 1.6-r2
sys-devel/autoconf: 2.13, 2.65-r1
sys-devel/automake: 1.9.6-r2, 1.10.2, 1.11.1
sys-devel/binutils: 2.20.1-r1
sys-devel/gcc: 3.4.6-r2, 4.3.4, 4.4.3-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool: 2.2.6b
sys-devel/make: 3.81-r2
virtual/os-headers: 2.6.30-r1
ACCEPT_KEYWORDS=“x86”
ACCEPT_LICENSE=“* -@EULA @FSF-APPROVED googleearth AdobeFlash-10.1”
CBUILD=“i686-pc-linux-gnu”
CFLAGS=“-march=pentium4 -O3 -pipe”
CHOST=“i686-pc-linux-gnu”
CONFIG_PROTECT=“/etc /usr/share/X11/xkb /usr/share/config”
CONFIG_PROTECT_MASK=“/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c”
CXXFLAGS=“-march=pentium4 -O3 -pipe”
DISTDIR=“/usr/portage/distfiles”
FEATURES=“assume-digests ccache distcc distlocks fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch”
GENTOO_MIRRORS=“ftp://mirror.yandex.ru/gentoo-distfiles/ http://mirror.yandex.ru/gentoo-distfiles/ ftp://gentoo.arcticnetwork.ca/pub/gentoo/ ftp://mirrors.tera-byte.com/pub/gentoo ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ ftp://de-mirror.org/distro/gentoo/ http://ftp.jaist.ac.jp/pub/Linux/Gentoo/ ftp://ftp.jaist.ac.jp/pub/Linux/Gentoo/ ftp://ftp.cs.pu.edu.tw/Linux/Gentoo/ "
LANG=“ru_RU.UTF-8”
LC_ALL=”"
LDFLAGS=“-Wl,-O1 -Wl,–as-needed”
LINGUAS=“ru”
MAKEOPTS=“-j20”
PKGDIR=“/usr/portage/packages”
PORTAGE_CONFIGROOT=“/”
PORTAGE_RSYNC_OPTS=“–recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages”
PORTAGE_TMPDIR=“/var/tmp”
PORTDIR=“/usr/portage”
PORTDIR_OVERLAY=“/var/lib/layman/sabayon /var/lib/layman/sunrise /var/lib/layman/mozilla /var/lib/layman/piczu /var/lib/layman/rion /usr/local/portage”
SYNC=“rsync://jabber.rs.int/gentoo-portage”
USE=“7zip X Xaw3d aac aalib accessibility acpi ads aesicm alsa artist-screen bash-completion berkdb bindist bzip2 cairo cli colors consolekit cpudetection cracklib crypt cue cups curl cxx cyrillic dbus detex dirac directfb djvu dri dtmf dvd dvdr dvdread enca enchant encode exif expat extra extras ffmpeg fits flac gdal gdbm geolocation geos gif git gnutls gphoto2 graphics gsm gtk gtk2 h224 h281 h323 hddtemp hdf5 hlapi iceweasel iconv ilbc jabber jbig jingle jpeg jpeg2k key-screen kpathsea lame latex ldap lensfun logrotate lua lyrics-screen mad mmx mng mod_irc mod_muc mod_pubsub modules mouse mp3 mpd mpeg mudflap musepack musicbrainz ncurses netcdf new-login nfs nls nptl nptlonly ntpl ntplonly nvidia ogdi ogg openal opengl openmp pam parted pcre perl pipe plugins png pppd python qt3support qt4 readline replytolist rss rtc samba sasl sdl search-screen session sidebar sipim song-screen sox speex spell sql srt srtp sse sse2 ssl stats subversion svg sysfs syslog tcpd tex4ht theora threads tiff tordns truetype unicode usb utf8 v4l v4l2 video vorbis vp8 vpx web webkit win32codecs winbind wmf x264 x86 xcb xetex xml xorg xscreensaver xulrunner xv xvid zlib” ALSA_CARDS=“ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci” ALSA_PCM_PLUGINS=“adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol” APACHE2_MODULES=“actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias” COLLECTD_PLUGINS=“df interface irq load memory rrdtool swap syslog” ELIBC=“glibc” GPSD_PROTOCOLS=“ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx” INPUT_DEVICES=“keyboard mouse evdev” KERNEL=“linux” LCD_DEVICES=“bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text” LINGUAS=“ru” PHP_TARGETS=“php5-3” RUBY_TARGETS=“ruby18” USERLAND=“GNU” VIDEO_CARDS=“nvidia” XTABLES_ADDONS=“quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account”
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

import -window root screenshot.png ? :slight_smile:

AMDmi3,

А если, к примеру, мосту/виадуку проставить height и min_height - будут ли они отрисовываться как объёмная дорожка, висящая в воздухе? Можно ли это добавить, если не будет?

П.С. Запостил в карту, жду выгрузку для проверки…

Сделал выгрузку через экспорт отсюда: http://osm.org/go/5@OzCD9O

Валится в корку:

Starting program: /home/serega/glosm/glosm/viewer/glosm-viewer /tmp/map.osm
Loading…
Loaded XML in 0.050 seconds

Program received signal SIGSEGV, Segmentation fault.
0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++ (this=0xbfffe524) at /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/g+±v4/bits/stl_list.h:223
223 _M_node = _M_node->_M_next;
(gdb) bt full
#0 0xb7f9a040 in std::_List_const_iterator<Vector2 >::operator++ (this=0xbfffe524) at /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/g+±v4/bits/stl_list.h:223
No locals.
#1 0xb7f94454 in CreateSmartVerticalLines (geom=…, vertices=…, minz=0, maxz=12000, minslope=5, way=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:91
i = {_M_node = 0x8135510}
prev = {_M_node = 0xbfffe630}
next = {_M_node = 0x0}
cosminslope = 0.99619469809174555
#2 0xb7f994b2 in WayDispatcher (geom=…, datasource=…, way=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:516
minz = 0
maxz = 12000
t = {_M_node = 0x0}
vertices = {<std::_List_base<Vector2, std::allocator<Vector2 > >> = {
_M_impl = {<std::allocator<std::_List_node<Vector2 > >> = {<__gnu_cxx::new_allocator<std::_List_node<Vector2 > >> = {}, }, _M_node = {_M_next = 0x8135510,
_M_prev = 0x8127ca8}}}, }
#3 0xb7f99a72 in DefaultGeometryGenerator::GetGeometry (this=0xbfffe918, geom=…, bbox=…) at /home/serega/glosm/glosm/libgeomgen-default/src/DefaultGeometryGenerator.cc:553
w = {_M_current = 0x8149640}
ways = {<std::_Vector_base<OsmDatasource::Way, std::allocatorOsmDatasource::Way >> = {
_M_impl = {<std::allocatorOsmDatasource::Way> = {<__gnu_cxx::new_allocatorOsmDatasource::Way> = {}, }, _M_start = 0x8144e60, _M_finish = 0x814aae0,
M_end_of_storage = 0x814ee60}}, }
temp = {lines
= {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x8194518, _M_finish = 0x81a4460,
M_end_of_storage = 0x81ac518}}, }, triangles = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x813e9d8, _M_finish = 0x81412c4,
M_end_of_storage = 0x81419d8}}, }, quads = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x817c510, _M_finish = 0x818fbc0,
M_end_of_storage = 0x8194510}}, }}
#4 0xb7fd75de in GeometryTile (this=0xbfffe8f8, projection=…, ds=…, ref=…, bbox=…) at /home/serega/glosm/glosm/libglosm-client/src/GeometryTile.cc:37
g = {lines
= {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
M_end_of_storage = 0x0}}, }, triangles = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
M_end_of_storage = 0x0}}, }, quads = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, }}
translated = {<std::_Vector_base<Vector3, std::allocator<Vector3 > >> = {
_M_impl = {<std::allocator<Vector3 >> = {<__gnu_cxx::new_allocator<Vector3 >> = {}, }, _M_start = 0x0, _M_finish = 0x1,
_M_end_of_storage = 0x1}}, }
#5 0xb7fd6c90 in GeometryLayer (this=0xbfffe8f4, projection=…, datasource=…) at /home/serega/glosm/glosm/libglosm-client/src/GeometryLayer.cc:32
No locals.
#6 0x0804a22c in real_main (argc=2, argv=0xbfffea34) at /home/serega/glosm/glosm/viewer/Main.cc:238
osm_datasource = { = {vptr.OsmDatasource = 0xb7fcde08}, = {}, nodes = {_vptr.id_map = 0xb7fcde50, static chunk_size = 1048576, nbuckets = 2048,
buckets = 0x807ebb0, count = 3567,
chunks = {<std::_Vector_base<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*> >> = {
_M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*>> = {<__gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Node, 0, 1, 1048576>::hash_node*>> = {}, }, _M_start = 0x8073118, _M_finish = 0x807311c, M_end_of_storage = 0x807311c}}, }, last_chunk_free = 1045009, current_ptr = 0xb531def8}, ways = {
_vptr.id_map = 0xb7fcde40, static chunk_size = 1048576, nbuckets = 512, buckets = 0x80d9488, count = 592,
chunks = {<std::_Vector_base<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*> >> = {
_M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*>> = {<__gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Way, 0, 1, 1048576>::hash_node*>> = {}, }, _M_start = 0x80731d8, _M_finish = 0x80731dc, M_end_of_storage = 0x80731dc}}, }, last_chunk_free = 1047984, current_ptr = 0xb2315f08}, relations = {
vptr.id_map = 0xb7fcde30, static chunk_size = 1048576, nbuckets = 2, buckets = 0x80e12d8, count = 4,
chunks = {<std::Vector_base<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*, std::allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*> >> = {M_impl = {<std::allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*>> = {<gnu_cxx::new_allocator<id_map<unsigned int, OsmDatasource::Relation, 0, 1, 1048576>::hash_node*>> = {}, }, M_start = 0x80dee48, M_finish = 0x80dee4c, M_end_of_storage = 0x80dee4c}}, }, last_chunk_free = 1048572, current_ptr = 0xb0f0e058},
InsideWhich = PreloadedXmlDatasource::NONE, tag_level
= 0, last_node
= {map = 0xbfffe858, current = 0xb531dee8}, last_way
= {map = 0xbfffe87c, current = 0xb2315ed8}, last_relation
= {
map = 0xbfffe8a0, current = 0xb0f0e044}, bbox
= {left = 1319310000, bottom = 431046700, right = 1319436000, top = 431186600}}
geometry_generator = { = {vptr.GeometryDatasource = 0xb7fa1e98}, datasource = @0xbfffe854}
layer = { = {vptr.Layer = 0xb7fded28}, = {}, tile = { = {vptr.Tile = 0xb7fded98, reference = {x = 1319373000,
y = 431116650}}, = {}, lines
= {M_ptr = 0x0}, triangles = {M_ptr = 0x0}, quads = {M_ptr = 0x0}}, projection = {project
= 0x804c124 <viewer+4>,
unproject
= 0xb7ff5b00}}
height = 7124
#7 0x0804a43c in main (argc=2, argv=0xbfffea34) at /home/serega/glosm/glosm/viewer/Main.cc:262
No locals.
(gdb)

Не будет. Добавить будет непросто, потому что нет способа указать насколько один объект выше другого в какой-то точке, а для мостов и точки такой быть не может. height для дорог малоприменимы, объекты мостов не приняты. Пока планируется только что-то на базе layer.

Сегфолт у меня не повторяется, пока выключил функцию где он возникает.

AMDmi3 что скажете на счет управления камерой только при зажатой правой клавиши мыши? ( писал выше что имею ввиду, чтобы курсор не пропадал )

Сотни вариантов управления будут когда оформится что-то более Google Earth образное. Сейчас есть более важные задачи, но patches, как водится, welcome.

Значит если отрисовывать мосты или переходы сейчас, то только из “маленьких кусочков building=yes с указаными размерами и высотами”. Хотя это всё конечно несколько поспешно, хотя и забавно :slight_smile:

Сегфолт полечился. И на карте приморья и на мособласти. Спасибо.

Ждём новых версий! :slight_smile: