Locus Map - forum

Development => Other features => Topic started by: Masterijn on July 12, 2014, 16:14:18

Title: Vector map speed
Post by: Masterijn on July 12, 2014, 16:14:18
Today I found a new version of Galileo on my iPad 3. I never came to to use this app in the field. It's incredibly limited in functionality. That said, here comes the point: in respect of render speed of vector maps it just much faster than what I used to on my Note 3. Uch locus uch... I know Locus depends on opensource renderer of vector maps, but I guess this still has a lot of room for improvement. In Galileo it's so fast that it even hard to see individual tiles are beeing rendered. But I guess the difference isn't explained by hardware vs software rendering. Another speed difference is in the drawing of tracks, this Is also much faster in Galileo. They also have an instant search and display of offline pois.
B.t.w. this is not an attack on Locus, but one sometimes needs some reference to set a feasible target.
Title: Re: Vector map speed
Post by: Menion on July 13, 2014, 21:26:54
Hello,

thanks for a feedback.

This all what you write, is something we are 100% aware of.

Rendering speed of vector maps is really limited by MapsForge library. Support for hardware rendering is not too helpfull here as most of precious time is spend on IO operations.

Speed of tracks is on second side problem on my side that is from 25% cause by bad system I use now (I hope this will be improved soon) and from 75% caused right by missing hardware rendering (it will take a lot longer).

And instant offline POI - this is also something that we want to add soon (not sure if they will be really "instant", but it will be fast.

So to sumarize it - I think that major problem is still too amaterism in Locus developing, also a "one man show" - me as only developer for Android app, which is not enough for such huge project.

On second side, I still hope that usability, possibilities and more, is more important then delay in map rendering.

And on the end? Give it some time - I beliebe it's better and better with every version ;)
Title: Vector map speed
Post by: Masterijn on July 13, 2014, 22:10:20
You're absolutely right, functionality is more important. B.t.w. I cannot run as fast to get a bothersome delay, however for me it was suprising, because I'm already pleased with the vectormaps implementation in Locus. Beeing a developer myself, I created a huge list searching alogorithm last year. It was of a fuzzy searching kind. The best matching strings are shown first. It was implemented in a way that it doesn't need process the whole list to make that "decision". The first items are popping out fast followed by the less matching ones. The searching is quite robust against little typing errors. Years before I did some searching in a 300k list, this was restrictive searching, which can be done faster. On a normal computer this could be done in ms (need to checkit). The poi's are in the 1M but I expect it can be done within 1/10 of a sec in android phone if indexes are beeing used. Keep up the good work!
Title: Re: Vector map speed
Post by: Masterijn on July 13, 2014, 23:33:09
Is there an easy way to get the complete poiname list as a txt file or something. I've become interested in how my algorithm with fuzzy searching would stand out on such a huge list. I guess it won't be fast enough, but I'm wondering... You beeing the solo developer, this can be a good thing in respect to efficiƫncy. You'll probably need 2 extra developpers before the development will become faster, because of the overhead and learning curve of teammembers. You should turn it around, I think you are proving with Locus how powerfull a single dedicated developer can be.

As a developer i've always been somewhat of a speed optimizer, if you would like my view on optimizing a subsystem I would gladly give it a serious thought.
Title: Re: Vector map speed
Post by: Menion on July 16, 2014, 20:50:45
Nice values in your "search list", congratulation ;).

List of POI - hmm, I think it should be possible by Osmosis application, that's used for grabing data from OpenStreetMaps.

Anyway in case of POI database in device, it's little bit more complicated. Because you don't need just searching by name, but you need also searching by location. Anyway I already have working solution for almost an year, but it's still not yet ready. Have to finish it soon ... http://forum.locusmap.eu/index.php?topic=3267.0

And speed optimizing - don't tell me about it. I rather don't want to count an hours I spend with optimizing every tiny detail of vector maps :). I think there is really not a space for improvements now. Limitation is format of file. Anyway I don't say I know a better way how to do it.
Title: Re: Vector map speed
Post by: Masterijn on July 17, 2014, 08:48:29
You mean nearby pois are shown first? That would be nice! (Galileo is missing that feature, but one can filter by screenarea)
The offer of giving optimalisations a thought was in general. Vector maps are very specific, and beyond my knowledge :).
Title: Re: Vector map speed
Post by: Menion on July 17, 2014, 08:52:19
Yes, but not just sorted by distance - imagine in your country is around 1 million of POIs and Locus needs to display the nearby points on map. So it's quite complicated task, which is solved by using database system that support geospatial queries. Unfortunately PostGis database is way to much on Android, but extended SQLite Spatialite seems to be good choice. Ah, you may test it on your own if you want - in mentioned topic is everything you may need.