Notices


Reply
Thread Tools
Posts: 1,994 | Thanked: 3,342 times | Joined on Jun 2010 @ N900: Battery low. N950: torx 4 re-used once and fine; SIM port torn apart
#231
Sure it will work, in any country.

Just get GPS lock, open the application, choose in the options->map what tiles (images) you want to use (Google, OpenStreetMap, Google Satellite, Yahoo Satellite, Virtual Earth... wide choice) and then try to zoom in/out: either (if you have Internet) modrana downloads needed maps automatically, or you need to attach device to computer, in mass storage mode, and use PC to download the tiles:
http://wiki.openstreetmap.org/wiki/C...le_downloading
At first, I just manually saved images from
http://tah.openstreetmap.org/Browse/tile/ZOOM LEVEL/X Coordinate/Y Coordinate/
but recently, I started to use JTileDownloader

OpenStreetMap can have not good coverage in some areas; its advantage is the fact that you can personally make the map better, instead of filling in feedback forms to a company like Yahoo or Google.
 

The Following User Says Thank You to Wikiwide For This Useful Post:
Posts: 1,548 | Thanked: 7,510 times | Joined on Apr 2010 @ Czech Republic
#232
Originally Posted by kureyon View Post
I think ThePooBurner means swap start and destination points and reroute
OK, now I get it

Originally Posted by gkuenning View Post
One problem I've noted is that most of the data-entry screens (e.g., route destination address) seem to use a black font. That doesn't work so well against the 900's default black background...
I'll lok what can be done. BTW, which one do you like beter ? The current modRana entry method or the default edit-boxes-on-the-page one ?

Originally Posted by Wikiwide View Post
Quick reply...
"It is going to be completely revamped (sqlite for storage, configurable categories, tags, etc.), and better integrated with other features."

I don't like SQLite... because I cannot read sqlite files by vi

Again, thank you for the application!
Well, yeah, but its IMO the easiest way how to manage many POIs with categories, tags and easy adding and removing. It should be also easier to add new functionality just by adding a new table, etc.
Without using a db of some sort, I would either have to dump and load the whole datastructure each time, which could be slow and adding new features would be problematic in regard to already stored user data. Also, If I saved each POI as a file, I could hit the cluster issue, as with the tiles.
Of course, there will be CSV export/import for backup and db content examination purposes.

Originally Posted by zombiepig View Post
Hey MartinK have you seen this yet?
http://blog.mikeasoft.com/2010/09/24...en-street-map/

Could be some useful stuff in there.
Originally Posted by woody14619 View Post
FYI, on the discussion about setting up local on-device routing, I thought you may be interested in this article about how someone got a set of routing programs setup locally on the N900. I'm betting with a little tweaking it could be turned into a package that would allow users to setup a routing server on their own device. May not be the "best" solution, but better than nothing when there's no network available.
It seems that there are 3 components:
  • memphis - vector map renderer
  • libchamplain - a clutter based map display widget
  • spatialite - a Sqlite extension that provides the actual routing


Spatialite is available from the repositories.

IMO, you basically load some OSM data the database, perform some special queries and you get the route as result.

Unfortunately, there seems to be a bug in the current Maemo version of Python, that makes it unable to load sqlite extensions.
There also seem to be Python-bindings for Spatialite, but they are not in the repositories and would need to be packaged first. Also, there is the question if they would work with the current version of Python.

There is also the possibility of running some sort of a separate routing daemon, with the added benefit of sharing the routing data between the numerous navigation apps (as mentioned by Woody in his comment to that article) on the N900.

Concerning Memphis, the vector map drawing library, its currently not in the repositories. But if someone packaged it and its Python bindings it could be IMO quite nicely integrated with modRana. Vector map support would mean (simple) maps of large areas from small OSM vector files.

An (old) version of libchamplain is in the repositories, but unfortunately without its python bindings. It could theoretically be used as an alternative map drawing widget and could be faster as the current modRana implementation because libchamplain is based on clutter which uses OpenGL ES for rendering on the N900.

Any interested Packagers/PyMaemo people ?
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)

Last edited by MartinK; 2010-09-28 at 00:23. Reason: typo: CVS -> CSV
 

The Following User Says Thank You to MartinK For This Useful Post:
Flandry's Avatar
Posts: 1,559 | Thanked: 1,786 times | Joined on Oct 2009 @ Boston
#233
First off, i want to say that modRana was an essential tool for the Boston-to-Canada bike tour i just completed. I decided it fit my use case better than Navit because i was pregenerating routes in Google Earth/maps and needed a lightweight app to display the track overlaid on a map with several different map options for different tasks (i.e. satellite images for finding good campsites, topo cycle map for seeing hilliness, OSM for seeing road names and features). So, thanks for your work!

However, all wasn't peaches and cream:
  • I found the process of precaching map tiles to be very time consuming. Ideally i wanted to download all the tiles along my route at a zoomed out level and a zoomed in level, and just switch between them. This proved more difficult than i had anticipated because
    • there's no indication of which zoom level you are currently at (besides the scale bar). Recommendation: show zoom level in download menu and/or provide absolute zoom level options instead/as well as +/- levels.
    • 5 km is the minimum range option, and 5 km to either side of a 450 mile route at a high zoom is a lot of tiles. Recommendation: provide a 1 km or 1 tile option.
    • The number of tiles doesn't seem consistent with the actual coverage. I wish i could comment more on this, but basically i mean that it's possible to see the tile boundaries on screen and the actual number of tiles needed is a lot less than the estimated number that modRana wants to download at times. This may just be confusion on my part/loss in translation about what's going on. Recommendation: no idea.
    • Ability to omit zoom levels accessed by using + and - icons in GUI. Perhaps this is an option in the configuration file. Bonus points: It would be really neat if there was an option that would only step up/down the zoom if the tiles are already cached for the present view area.
    • The UI for activating tracks is a bit confusing at first, but once i figured out what was going on it was ok, if a bit cumbersome. The ability to click-and-hold on a track on screen to access its menu would be wonderful, but i realize that may not be easy to implement.
  • After browsing through a lot of different areas of map, especially with different maps enabled, the N900 becomes unresponsive and requires a reset.
  • Even without browsing around in the map, if i left modRana running for an extended period (say > 1 hr), it eventually would cause a lockup or reboot. If i was careful to close modRana after each reference i had no trouble, but the process of starting up and loading all the tracks was time (and battery) conusming. Activating a track seems to aggravate this tendency. I noticed a few times after the N900 had reset that the battery was significantly drained (e.g. 8 bars to 2), suggesting something had pegged the CPU. This led to some really tricky situations where i had to delay the trip a bit to charge up. I don't report this by way of complaint because i knew taking a new and relatively untested app along was signing up as a beta tester, but hopefully this report will help these issues get worked out.

Due to these issues, i used the gpsrecorder app to track my route instead of modRana, and that worked okay.

Originally Posted by MartinK View Post
The space estimation currently just asks the server about the size of the individual tiles and and them counts a sum of all the individual sizes. That's would be quite precise in an ideal world, but as already mentioned, there are unfortunately filesystem clusters in the real world

So, what can be done:
  • I can add the cluster size to the size estimation feature, so it is closer to the actual result
  • pack the tiles in some transparent single-file filesystem
  • store the tiles in a sqlite database ?
BTW, every non-standard method will break the current tile sharing between the various tiles based map aps that use .maps

IMO, a transparent single-file-fs proxy linked to the .maps folder would be probably the best.
You could make this a configurable option, i guess, but i don't use any other tile mappers and would really appreciate some solution to the cluster size issue. Even just adding some hack like the ability of modrana to read into .tar archives in the .maps directory that a user creates by hand would be fine with me.

Thanks again for your work on this. It's fantastically useful for this kind of usage!
__________________

Unofficial PR1.3/Meego 1.1 FAQ

***
Classic example of arbitrary Nokia decision making. Couldn't just fallback to the no brainer of tagging with lat/lon if network isn't accessible, could you Nokia?
MAME: an arcade in your pocket
Accelemymote: make your accelerometer more joy-ful

Last edited by Flandry; 2010-09-27 at 16:06.
 

The Following User Says Thank You to Flandry For This Useful Post:
Posts: 992 | Thanked: 738 times | Joined on Jun 2010 @ Low Earth Orbit
#234
Originally Posted by MartinK View Post
BTW, every non-standard method will break the current tile sharing between the various tiles based map aps that use .maps
Any chance of getting together with the other devs to work out a solution that all the mapping programs can use? Maybe someone could write a library to abstract out the reading/writing of the map tiles
 
Posts: 1,548 | Thanked: 7,510 times | Joined on Apr 2010 @ Czech Republic
#235
Originally Posted by Flandry View Post
You could make this a configurable option, i guess, but i don't use any other tile mappers and would really appreciate some solution to the cluster size issue. Even just adding some hack like the ability of modrana to read into .tar archives in the .maps directory that a user creates by hand would be fine with me.
Originally Posted by kureyon View Post
Any chance of getting together with the other devs to work out a solution that all the mapping programs can use? Maybe someone could write a library to abstract out the reading/writing of the map tiles
I'm currently working on this I'll post more about this and respond to questions as soon as can I get it to a releasable state.
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
 

The Following 2 Users Say Thank You to MartinK For This Useful Post:
Posts: 1,548 | Thanked: 7,510 times | Joined on Apr 2010 @ Czech Republic
#236
I have just sent the newest V0.16-1 to the autobuilder, the main feature is, as promised, the experimental sqlite tile storage support!

What is this good for ?
As mentioned earlier in this thread and also in a related Mappero thread, tile take up more space than expected because each tile, even if only 500B in size, takes a whole 64kB cluster.
When using sqlite for tile storage, there are basically just 2 files per layer, not the usual tens of thousands of files and folders.

How to enable sqlite tile storage ?
Go to options->map and switch tile storage from files to sqlite.

Is it stable ?
It seems to work OK for both normal automatic tile download (including overlay) and batch download. But some errors can still can show up, so please report any unusual behavior when using this !

What about the 4GB maximum file size limit on FAT32 ?
When a size of the storage database reaches 3.7 GB, a new one is added. The is no limit on the number of storage databases.

How does it work ?
The tiles are stored in a sqlite database as blobs. There are two types of database files, lookup.sqlite and store.sqlite. The lookup file stores an database that indicates in which store the requested tile is. The store file has the actual data. Multiple stores should be numbered in ascending order, starting from 0:
Code:
store.sqlite.0
store.sqlite.1
store.sqlite.2
etc.
The storage database looks like this:
Code:
table tiles (z integer, x integer, y integer, store_filename string, extension varchar(10), unix_epoch_timestamp integer, primary key (z, x, y, extension))
The store databases look like this:
Code:
table tiles (z integer, x integer, y integer, tile blob, extension varchar(10), unix_epoch_timestamp integer, primary key (z, x, y, extension))
The only difference in the structure is that the lookup databases only stores the name of the store for given coordinates and the store database stores the actual blob.
Both also have a table called called version which has an integer column called v. There is a single 1 inserted, which indicates the current version of the table.

These database files are stored in the
corresponding layer folders.

When looking for a tile in the database, modRana first asks the lookup database and when it gets an answer, it asks the store described in the store_filename for the given coordinates.

Could this be used by other navigation apps ?
Why do you think I just roughly described how it works ?
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
 

The Following 11 Users Say Thank You to MartinK For This Useful Post:
Flandry's Avatar
Posts: 1,559 | Thanked: 1,786 times | Joined on Oct 2009 @ Boston
#237
Great job; it's nice to have a workaround!

I haven't used modrana this week until today. I only had it open for about 10 minutes (it was still trying to get a GPS lock) when it locked up the device while the screen was blanked, similar to what i described above in my previous post. Is nobody else having trouble like this?
__________________

Unofficial PR1.3/Meego 1.1 FAQ

***
Classic example of arbitrary Nokia decision making. Couldn't just fallback to the no brainer of tagging with lat/lon if network isn't accessible, could you Nokia?
MAME: an arcade in your pocket
Accelemymote: make your accelerometer more joy-ful
 
woody14619's Avatar
Posts: 1,455 | Thanked: 3,309 times | Joined on Dec 2009 @ Rochester, NY
#238
Originally Posted by Flandry View Post
Is nobody else having trouble like this?
I've never had it with this app, though I have with Mappero and BarrioSquare. I'm betting it's more a GPS lock bug than a modRana bug. User processes shouldn't be able to hard-lock the device.

Originally Posted by MartinK View Post
How to enable sqlite tile storage ?
Go to options->map and switch tile storage from files to sqlite.
Awesome... One question though: Does this clean up the existing map files, or is that an exercise left to the user? I'll find out in a minute, and I know it's only an rm, but something you may want to mention. Thanks for all the great work on this! I've been using it pretty regularly, and it's been a real life saver at times. Now if I could only save where I'm at as a POI...

Two small things to consider:
1> When presenting "miles until turn", maybe the user would prefer only a few digits of precision? 0.34 miles is fine, vs say 0.3405938451 miles.

2> Another e-speak filter for numbers... apparently "Turn right in 0.3452943523 miles" turns into "turn right in miles", vs "turn right in zero point three four miles"
 

The Following 2 Users Say Thank You to woody14619 For This Useful Post:
Flandry's Avatar
Posts: 1,559 | Thanked: 1,786 times | Joined on Oct 2009 @ Boston
#239
Originally Posted by woody14619 View Post
I've never had it with this app, though I have with Mappero and BarrioSquare. I'm betting it's more a GPS lock bug than a modRana bug. User processes shouldn't be able to hard-lock the device.
I can use Ovi maps, Navit, or GPS Track logger without any trouble. This is something specific to modRana.
__________________

Unofficial PR1.3/Meego 1.1 FAQ

***
Classic example of arbitrary Nokia decision making. Couldn't just fallback to the no brainer of tagging with lat/lon if network isn't accessible, could you Nokia?
MAME: an arcade in your pocket
Accelemymote: make your accelerometer more joy-ful
 
Posts: 1,548 | Thanked: 7,510 times | Joined on Apr 2010 @ Czech Republic
#240
Progress update
I have been improving the sqlite tile storage integration and also took a look on the batch download feature. The old implementation did not reuse open download socket which was slow and inefficient, so I integrated the urllib3 which enables socket reuse. I got a bit entagled in all the threads used to handle all of this (there is the main thread, the thread that is running the download threads and a consumer thread feeding tiles to the sqlite database as it cant be used by multiple threads) but it seems to be finally sorted out. Next release should be therefore coming quite shortly.

Originally Posted by Flandry View Post
First off, i want to say that modRana was an essential tool for the Boston-to-Canada bike tour i just completed. I decided it fit my use case better than Navit because i was pregenerating routes in Google Earth/maps and needed a lightweight app to display the track overlaid on a map with several different map options for different tasks (i.e. satellite images for finding good campsites, topo cycle map for seeing hilliness, OSM for seeing road names and features). So, thanks for your work!
Nice to know that modRana is being helpful !

Originally Posted by Flandry;827541[list
[*]there's no indication of which zoom level you are currently at (besides the scale bar). Recommendation: show zoom level in download menu and/or provide absolute zoom level options instead/as well as +/- levels.
You can see the current zoomlevel when you click on the edit button in the batch download menu + it is showing the resulting zoomlevel range.

Originally Posted by Flandry View Post
5 km is the minimum range option, and 5 km to either side of a 450 mile route at a high zoom is a lot of tiles. Recommendation: provide a 1 km or 1 tile option.
OK, I'll add 1km option, maybe also 2km ? I checked if it's possible to use sub kilometer values but an implementation detail currently prevents this. Concerning the 1 tile corridor, I'll have to check the source, its been a while since I wrote that part of the code

Originally Posted by Flandry View Post
[*]The number of tiles doesn't seem consistent with the actual coverage. I wish i could comment more on this, but basically i mean that it's possible to see the tile boundaries on screen and the actual number of tiles needed is a lot less than the estimated number that modRana wants to download at times. This may just be confusion on my part/loss in translation about what's going on. Recommendation: no idea.
Yeah, it is quite confusing. This is because it is quite time consuming to check which tiles are available and which need to be downloaded. ModRana currently just lists the maximal number of tiles that would be needed, thats why there is the ~ before the number
I changed the size estimation function for the next version so that it removes tiles that are available, so it should show the number o actually needed tiles after the tile estimation job finishes.

Originally Posted by Flandry View Post
[*]Ability to omit zoom levels accessed by using + and - icons in GUI. Perhaps this is an option in the configuration file. Bonus points: It would be really neat if there was an option that would only step up/down the zoom if the tiles are already cached for the present view area.
There is setting in options that disables the automatic tile download...but I'll have to check if it's actually working/implemented

Originally Posted by Flandry View Post
The UI for activating tracks is a bit confusing at first, but once i figured out what was going on it was ok, if a bit cumbersome. The ability to click-and-hold on a track on screen to access its menu would be wonderful, but i realize that may not be easy to implement.
The activation should be much easier when widgets finally become clickable, etc.
Regarding the tracklog selection, what about a longclick near the track + "do you want to select track XY"popup ?

Originally Posted by Flandry View Post
[*]After browsing through a lot of different areas of map, especially with different maps enabled, the N900 becomes unresponsive and requires a reset.[*]Even without browsing around in the map, if i left modRana running for an extended period (say > 1 hr), it eventually would cause a lockup or reboot.
Originally Posted by Flandry View Post
I haven't used modrana this week until today. I only had it open for about 10 minutes (it was still trying to get a GPS lock) when it locked up the device while the screen was blanked, similar to what i described above in my previous post. Is nobody else having trouble like this?
The next version will have a logging feature (basically stdout piped to a textfile in MyDocs). This may help to find the root cause of the lockups. BTW any guesses why such hard lockup can even happen ? IMO there is a hardware watchdog that is checking multiple device parameters and should prevent this or just restart the device...

Originally Posted by Flandry View Post
If i was careful to close modRana after each reference i had no trouble, but the process of starting up and loading all the tracks was time (and battery) conusming. Activating a track seems to aggravate this tendency. I noticed a few times after the N900 had reset that the battery was significantly drained (e.g. 8 bars to 2), suggesting something had pegged the CPU. This led to some really tricky situations where i had to delay the trip a bit to charge up. I don't report this by way of complaint because i knew taking a new and relatively untested app along was signing up as a beta tester, but hopefully this report will help these issues get worked out.[/list]
Due to these issues, i used the gpsrecorder app to track my route instead of modRana, and that worked okay.
There is definitely room for improvements in power-saving.

I was thinking about skipping the drawing loop if I can detect that the screen is off (it currently redraws even when the screen is blanked - as do many other apps IMO). As drawing and module state updates are two separate loops, logging etc. should still run normally.

I could also add less pretty but more power efficient optional drawing methods (like not redrawing the map while it's being dragged, moving the map just once a while (like in mappero), etc.).

Originally Posted by woody14619 View Post
Awesome... One question though: Does this clean up the existing map files, or is that an exercise left to the user? I'll find out in a minute, and I know it's only an rm, but something you may want to mention.
Well, modRana shares the same map folder with other tile based apps (mappero, maep, AGTL?) so if it just ate the tiles and stuffed them to the database (which could be doable IMO) the other apps would not be able to use them.
If you just want to get rid off the files and don't mind the other apps, just manually remove all the numerically named subfolders in the map layer folders.

Originally Posted by woody14619 View Post
Two small things to consider:
1> When presenting "miles until turn", maybe the user would prefer only a few digits of precision? 0.34 miles is fine, vs say 0.3405938451 miles.

2> Another e-speak filter for numbers... apparently "Turn right in 0.3452943523 miles" turns into "turn right in miles", vs "turn right in zero point three four miles"
Thanks for reporting this ! I'll fix it
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
 

The Following 8 Users Say Thank You to MartinK For This Useful Post:
Reply

Tags
bada rox, martin_rocks, modrana, navigation, openstreetmap, the best, wehasgps

Thread Tools

 
Forum Jump


All times are GMT. The time now is 01:35.