![]() |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
So I disabled it, fixed tile loading and started to work on all other broken & missing features (POI, online routing, turn-by-turn navigation, batch tile download, map overlay & rotation, tracklog support etc). The source code of the renderer (pyrender) is actually still inside modRana BTW. I took a quick look at the code after about two years - and it actually doesn't look that bad. If I understand it correctly it takes an *.osm file (it can even download the OSM data for given tiles), loads it to memory using an XML parser and then renders a set of predefined tags as points or (poly)lines. There seems to be even some support for textual labels. It uses Cairo or PIL (Python Imaging Library) as the drawing backend. Looks like that it might be a quite good base for a simple map renderer + there is a lot of room for various optimizations (pre-filtering OSM files, marshaling/caching parsed XML data, QPainter backend,...). Any interested developers ? :) When I'm at it, I'll also take a closer look at the Kothic realtime python map renderer. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
So, I managed to get speedup (not giving any numbers, I was too lazy to recheck) for generate_tiles.py which comes with mapnik.
First, I've made it save tiles directly to SQLite database. Second, I've made it check if a tile already exists before attempting to render it. Third, for each tile render request, an area of (x+8, y+8) more tiles is rendered and saved into SQLite. This is vital because in the stock renderer, where map was 256x256, a gutter of 128 pixels was used so that labels are not mispositioned, which gives us actually a 512x512 image, 75% of which is discarded. Fourth, I poked around map stylesheet and changed all that crazy light gray on white coloring to black. After filling the data up, the normalization is done as follows: tile_id (integer) is added to lookup, and it references the ROWID of tiles table in the store. x, y, z and other columns beside ROWID and tile are dropped from the store. Also, I've seen no use for timestamp column, and dropped it altogether. As for store filename, I made it "store number" and use it to calculate the filename, like 'store.sqlite.'||store_number. All backward compatibility is achieved by using views. I think matters could be improved further by having map size table in the lookup database, which would be used to translate planar coordinates into linear ones, and use those linear ones to be the tile_ids. Maybe even dropping x and y columns as a result. So, on my todo list: 1) Make generate_tiles.py accept input files which tell what coordinates at what zoom levels should be generated; 2) Try even more space optimization tricks; 2.5) As a part of this, I suspect that some areas are still needlessly rendered and sliced, so investigate, it would save a few days' work; 3) Put the tile generator on github for all to see; 4) The generation process is very long and boring, so use urwid to visualise the progress in some way. :) By the way, the most time-consuming task is PNG encoding. Unfortunately, we cannot encode first, then slice. However, we can employ some parallelizing tricks, as this task is very multiprocessing-friendly. |
Re: [Announce] modRana: a flexible GPS navigation system
Some news from competition.
Installed MapDroyd on Android. They render vector data from some unbelievably efficient data files called MicroMap (http://www.onestepahead.de/index.php...omap&Itemid=62). Rendering is mindbogglingly fast. Maps take ridiculously little space. Borderlines look like sh*t at any zoom level: when far, they look like what you would draw on a whiteboard when asked to sketch a map of world. At close levels they look like what you would draw when asked to draw a map of world as precisely as you can with a pencil and no eraser. Verdict: we still need ModRana on Android, like it or not. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Quote:
On the other hand, if we consider the concept of tile read only tile-packs, it makes sense to gut every redundancy and make them as small & and as fast to generate as possible. How it could look like
Quote:
Quote:
Still, there are quite a few open geodata storage formats already: OSM Protocol Buffer Format Navit binary format Monav binary format the old Rana binary format McNavi binary format Garmin reverse engineered binary format Many of these formats seems to have the similar concept of binary map data tiles "tiles", probably to the same advantages normal graphical map tiles have (easy coordinates -> tile x,y conversion; easy access to neighboring data, parallel processing, etc.). Well, there was even a binary tile data server for Rana. :) There are also data sets already available in some of these formats hosted online (for Navit, Monav, even McNavi). |
Re: [Announce] modRana: a flexible GPS navigation system
Crap, I just have wasted a week of time trying to re-render tiles with the new stylesheet.
Guess what, nowhere in Mapnik docs (nor in __doc__ strings) does it say that Mapnik.Image.view() should be given (x, y, width, height) and not (x1, y1, x2, y2). So I assumed the latter and only now, when the database all of a sudden grew to 90G at zoom level 15, did my suspicions rise. I checked a tile, and it was 3 megs in size. Hence. I was ultimately wrong about PNG encoding taking the most time. Rendering does take the most time, unless you let bugs into your code, like I did. |
Re: [Announce] modRana: a flexible GPS navigation system
Short progress update :)
ModRana source code on Github I have migrated the source code from SVN to a Github hosted Git repository: https://github.com/M4rtinK/modrana Pull requests & patches are welcome ! :) NOTE: The TRAC on www.modrana.org is still fully functional and will be switched from SVN to a Git mirror of the Github repository in the coming days. Where to submit new issues/bugreports/feature requests ? I'll be watching both modrana.org and the Github issue pages. Please try not to post duplicates or at least link to the relevant issues on the other site. :) |
Re: [Announce] modRana: a flexible GPS navigation system
Hooray! I have an N900 again and installed ModRana on it! It has come a long way. I do have a suggestion: when you search for POIs and you select one, there should be a "Route to Here" button on there, rather than having to go through two more layers of menus.
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
BTW, in the new QML UI, I plan to reduce the number menu layers you have to go through to access the search functionality. Basically just: menu->search Then you enter the query & get results to a scrollable list under the entry box (sou you can easily tweak the query). Clicking a result will open a detail page with further info & options. modRana theme & icon source on GitHub Source files for the modRana default theme and icons are now also available on Github. :) |
Re: [Announce] modRana: a flexible GPS navigation system
8-bit map support
To keep up with the cutting edge, modRana now supports the brand new 8-bit map format. http://modrana.org/images/april_fool...t_portrait.jpg Portrait http://modrana.org/images/april_fool..._landscape.png Landscape |
Re: [Announce] modRana: a flexible GPS navigation system
to be honest, the URL was a bit of a give-away ;)
|
Re: [Announce] modRana: a flexible GPS navigation system
Any plan to implement the actual bus routing? Meaning listing the buses/its route number while routing for bus and not the left right direction as in car mode.
|
Re: [Announce] modRana: a flexible GPS navigation system
MartinK, is that the new QT UI?
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Quote:
I'm also about finished with my rewritten automated packaging scripts so initial preview packages should really available any day now - and then in regular intervals afterwards. I'll be making a combined package with both the classic GTK & the new QML GUI for Fremantle and a QML only package for Harmattan. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
New modRana preview package for Fremantle & Harmattan available for testing ! :D
After sorting quite a few last minute issues, preview packages for the new modRana version - 0.30 - are finally available. Initially I'll be releasing stand-alone packages at first and push a release to Extras once any serious issues are found & fixed. Please report any issues you encounter, so that they can be fixed quickly! Also please report your modRana version when submitting a report (menu->info->about). :) Where can I get it ? The deb packages packages are available from two separate OBS repositories, one for Fremantle and one for Harmattan: Fremantle repository Harmattan repository Both packages are build by a script from the modRana source on Github, so the current package version could change quite often as I fix bugs & add features. Also please note that the packages might be a bit cutting edge - some breakage can occur from time to time. Installing the Fremantle package First install dependencies using apt-get (you need to be root for this): Code:
apt-get install python-qtmobility12 python-pyside.qtgui python-pyside.qtdeclarative qt-components-10 espeak python To launch the different GUI from the CLI, use modrana-gtk or modrana-qml respectively. Installing the Harmattan package First install dependencies using apt-get (you need to be root for this): Code:
apt-get install python-pyside.qtgui python-pyside.qtdeclarative python-qtmobility Code:
sh /opt/modrana/run/harmattan As there is currently no usable GTK port for Harmattan, only the QML GUI is available on Harmattan. General improvements
Qt/QML GUI There isn't that much functionality at the moment, but the cornerstones - the main map view & main menu are already working rather nicely. More features should be coming quickly as most of the preparatory work has been already done. Also, please let me know what do you think about the current map view & menu layout ! :) GTK GUI The classic GTK GUI should work just fine & better than previously, mainly due to various backend improvements. Please report any regressions ! I love modRana ! Where can i donate ? Use the paypal donation link, thanks in advance ! :) I'm a developer and want to submit a patch ! Fork modRana on github, add your modifications and send me a pull request - as easy as that ! :) Classic methods (patch-in-email, etc.) are of course also accepted. :) |
Re: [Announce] modRana: a flexible GPS navigation system
Continuing with the rolling release :)
V0.30.28
|
Re: [Announce] modRana: a flexible GPS navigation system
Installation notes for N900:
Code:
root Code:
apt-get install python-qtmobility12, python-pyside.qtgui, python-pyside.qtdeclarative, qt-components-10, espeak, python |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Code:
apt-get install python-qtmobility12 python-pyside.qtgui python-pyside.qtdeclarative qt-components-10 espeak python |
Re: [Announce] modRana: a flexible GPS navigation system
-Change the title from modrana.py to Modrana or something.
-While not in full screen the lower row of icons (Menu, Zoom in/out) goes below the screen edge. -Map layer names are variable namish rather than user friendly names (gsat instead of usual Google Satellite), Title is also not proper yet. Thanks for mock up. Implemented stuffs seems to work fine! Btw what is the short horizontal line at upper right end? |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
The packages just have different startup scripts, icons and desktop files. Also the Harmattan package is build with Aegis support - otherwise modRana would not be able to use GPS on the N9/N950. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
I try uninstall the old version and try to upgrade to 0.29-2.....can't do it. Or reinstall everything over ...won't work either. Extras-devel is enable. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Code:
apt-get install -f |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
Hi MartinK, I'm trying to install modRana on my N9 but even after making sure I have the up-to-date python dependencies you listed it is still failing installation and claims to not have found all of the dependencies. Is there something I'm leaving out? I used to use your app all the time on my N900 so thanks for all your work!
|
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Can you post the terminal output you are getting during the installation ? Also, check if you have Extras & Extras-devel enabled. :) |
Re: [Announce] modRana: a flexible GPS navigation system
Here's what i got, looks like maybe i need to incest the program to get around aegis?
/MyDocs/.downloads $ dpkg -i modrana_0.30.31_a rmel.deb dpkg: requested operation requires superuser privilege aegis-installing modrana (from '') accli.cpp(1449): ERROR: cannot sign '/var/lib/aegis/restok/restok.conf.new' (Operation not permitted) Creating new signed '/var/lib/aegis/restok/restok.conf' failed ~/MyDocs/.downloads $ |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Try to first become root by running this command: Code:
devel-su Also, you might need to enable the developer mode. :) BTW, as soon there is a usable feature set in the QML version, I'll push it to AFM & Nokia Store (Ovi). :) |
Re: [Announce] modRana: a flexible GPS navigation system
Ok, so I thought I was root but now I've sorted that and here's where it gets stuck, seems like dependencies that i can't find in my repos. Not sure how to add maemo extras-development etc but I'll look into it. Thanks for the swift responses!
/home/user/MyDocs/.downloads # dpkg -i modrana_ 0.30.31_armel.deb aegis-deb-release: Missing ':' in ' b27838cd7450c6f10d39ce9491ec20a1 756954 free/source/Sources d91852b967d8dbeab6248c6f1556405c 224347 free/source/Sources.gz 144e299a324fedc82763cb3ddfacadd1743cd7ed 756954 free/source/Sources 44afe3219b48edd1fe357726716df2e02dcf4759 224347 free/source/Sources.gz c3ca448e424cefa1c2f1468847a2230fccea9ef3afafcb5cd9 27cd99914e8cea 756954 free/source/Sources f507ece4b736634f52ef579e5742313df4ba1b19da1f9483f8 bb2e214e578690 224347 free/source/Sources.gz ' (Reading database ... 53359 files and directories currently installed.) Preparing to replace modrana 0.30.31 (using modrana_0.30.31_armel.deb) ... Unpacking replacement modrana ... aegis-installing modrana (from '') dpkg: dependency problems prevent configuration of modrana: modrana depends on python-qtmobility12; however: Package python-qtmobility12 is not installed. modrana depends on qt-components-10; however: Package qt-components-10 is not installed. dpkg: error processing modrana (--install): dependency problems - leaving unconfigured Processing triggers for hicolor-icon-theme ... Processing triggers for desktop-file-utils ... Errors were encountered while processing: modrana /home/user/MyDocs/.downloads # |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
|
Re: [Announce] modRana: a flexible GPS navigation system
1 Attachment(s)
Just a short message.
ModRana remembers visible tracklogs after restart, but not visible points-of-interest. It's tedious to make them visible again and again. So I added a small feature: to show all points-of-interest. I would have liked to see something similar in the next version. Thank you. ModRana remains the most comfortable and versatile navigation tool for me. |
Re: [Announce] modRana: a flexible GPS navigation system
Quote:
Preview packages should be available in a few minutes & and I'm also almost ready for an Extras release. |
Re: [Announce] modRana: a flexible GPS navigation system
I worked a bit more on POI handling - modRana now saves visible POI and restores them at startup. :)
BTW, this is the changelog for the preview package so far: Code:
* initial QML GUI |
Re: [Announce] modRana: a flexible GPS navigation system
ModRana V0.31.1 is now in Extras-devel. :)
V0.31.3 fixes broken link opening when Opera is installed. |
Re: [Announce] modRana: a flexible GPS navigation system
Just upgraded to 0.31.3 and in centered view I get no maps just grey background. Once I drag the map shows. Buttons and icons show fine.
|
All times are GMT. The time now is 02:53. |
vBulletin® Version 3.8.8