tumic0 / GPXSee

GPS log file viewer and analyzer with support for GPX, TCX, KML, FIT, IGC, NMEA, SLF, SML, LOC, GPI, GeoJSON and OziExplorer files.
https://www.gpxsee.org
GNU General Public License v3.0
976 stars 132 forks source link

Support for Mapsforge's .poi format #420

Closed hshagsfgd closed 2 years ago

hshagsfgd commented 2 years ago

TL;DR

Support for Mapsforge's .poi format.


After learning that Mapsforge's .map format is supported, I have opened several such files from different providers and compared them, and unfortunately found out, that while map 1 would have certain POIs/names, map 2 would have different POIs/names displayed (not sure if they are actual baked in POIs or just part of some kind of names, like street names, since I didn't open a POI file, just the .map file) (zooming around would still not display certain POIs, they may not be in the .map file at all). Fortunately some of the providers also offer/include a .poi file, so after I opened the .map file, I also tried to open the .poi file from the POI menu to add the missing POIs, but unfortunately the format seems not to be supported and I get Unknown format error.

tumic0 commented 2 years ago

Mapsforge POI files are unusable in GPXSee as they (usually) contain way too much data that can not be processed in the same way like all other POI files. For example for my country, the reletively small Czech Republic, the POI file has ~390k entries. And that's not gonna "move" on any todays computer (on an average notebook, you get stuck at ~20k points). And there are much bigger (in terms of POIs number) countries like Germany... The POI file, despite its name, is in fact not a POI file, but a dump of all OSM point objects.

To do something with the files, you would have to completely change the logic of POI displaying - load/show them only on some high map zoom levels or to filter them somehow. But that is out of scope of GPXSee and if you do that than you can most probably save the result in another format that GPXSee understands.

hshagsfgd commented 2 years ago

No one is going to want to see all POIs at once and that's why Mapsforge's .poi format exist. It's a database format/file and makes search queries basically instant (even on older smartphones), for each zoom level/area/depth. Yes, it's not as simple as a simple .gpx XML file, but it's more flexible.

The POI file, despite its name, is in fact not a POI file, but a dump of all OSM point objects

And some point objects can be of interest ;)

I feel like you closed this one too early (even if the program's name may imply only GPX support, but it already supports not only that one), even if it's more work to implement. Maybe someone reads this and wants to contribute patches to add support for it.

PS: I found this can convert .pbf to .gpx. And if one wants to limit the number of POIs, here's an extractor. Although after the file is created, GPXSee->POI doesn't display any POIs, so I opened new issue.

tumic0 commented 2 years ago

Even when used as POI files in GPXSee, the Mapsforge POI files are unusable in GPXSee, see the attached example. Some filtering is necessary to work reasonable with the files and that is out of scope of GPXSee. But like usual, feel free to implement this feature in your own fork of GPXSee.

POI