Gosmore
Gosmore | |
---|---|
Author: | Nic Roets |
License: | BSD |
Platforms: | Windows, Android, Linux, Unix, Maemo, Windows Mobile, and Windows CE |
Status: | Unmaintained |
Version: | - (2011-11-22) |
Languages: | English and German |
Website: | http://sourceforge.net/projects/gosmore/ |
Source code: | https://svn.openstreetmap.org/applications/rendering/gosmore/ |
Programming language: | C++ |
Gosmore is a router and viewer of OSM XML data such as the whole planet.osm or other osm files from Geofabrik (see downloads).
Features
- A 2D map viewing window (Mercator projection), as well as a 3D bird's eye view.
- Incremental search of all tags. Results are ordered from nearest to farthest.
- Routing with basic Relation:restriction support.
- Obtain the current location from a GPS receiver (via gpsd using Linux).
- The ability to add POI's and trace ways which get saved to a .osm format file ready for import into JOSM
- The ability to automatically switch maps on-the-fly, so you can access the whole planet.
Downloading and running
Android
The old version is on the Android Market. The new version renders with casing (qrcode).
You can also compile it from source. You will need the SDK, the NDK and Eclipse. Run ndk-build in the jni directory, then create a project with Eclipse and build.
Linux, FreeBSD, MacOSX
Note: source install will not always be build-able so use a binary from http://sourceforge.net/projects/gosmore/
### Example for Ubuntu or Debian ### sudo apt-get install libxml2-dev libgtk2.0-dev g++ make subversion libcurl4-gnutls-dev libgps-dev svn co https://svn.openstreetmap.org/applications/rendering/gosmore/ cd gosmore ./configure make sudo make install
### Example for Fedora 13 ### su -c "yum install libxml2-devel gtk2-devel gcc-c++ make subversion libcurl-devel gpsd-devel" svn co https://svn.openstreetmap.org/applications/rendering/gosmore/ cd gosmore ./configure make sudo make install
Alternatively install the debian package that may be slightly out of date.
On FreeBSD and MacOSX, you will need to use GNU Make (gmake) to build as the Makefile is in a GNU Make format, rather than the traditional BSD make.
On MacOSX, you will have to install X11, the developer tools and maybe additional packages that are not listed here but are fairly standard when compiling stuff. Feel free to list them if you find any that are not listed here.
After these steps complete, gosmore should appear on your menus. Gosmore will run fairly responsively on a 256 MB machine.
After finding a city or location you are interested in, choose the 'Update Map' function (see the Auto Pak file section below). Downloaded files will be stored in $HOME/.gosmore/
Headless operation
If you are building gosmore on a machine that does not have X11 installed, uncomment the following line in the Makefile:
#CFLAGS += -DHEADLESS
by removing the # at the beginning of the line. If you fail to do this, gosmore will complain about not being able to open a display and fail to run.
Building your own PAK file
Alternatively, build your own pak file (See the Gosmore/RebuildGuide). Then the "make install" step is not required:
bzcat ...osm.bz2 | ./gosmore rebuild
- SVN repository on trac
This last step takes typically 5 hours for a current planet file on a dual core 64 bit machine with 2GB RAM and requires close to 20GB of harddisk space, but using country extracts is strongly advised.
Auto Pak file
During "make install", the default.pak file will have been placed in your resource directory (usually /usr/share/gosmore). Then you must make sure that the current directory does not contain gosmore.pak. Use the 'Update Map' function to download the relevant bounding box. As you browse the map, the relevant map will be swapped in.
Windows CE / Windows Mobile
(maps are limited to 400 MB each)
- Go to https://sourceforge.net/projects/gosmore/files/ and download "gosmoreWinMob.zip"
- Unzip the file ("arm-mingw32ce-gosmore.exe") on an SD card. If you want your gpx file and any log file on your SD card and not in My Documents, download the empty "gosmore.opt" file as well.
- Download a prebuilt bbox or extract or build one yourself using Linux.
- Put it in your device and execute "arm-mingw32ce-gosmore.exe". You may need to rename it to mobilenavigator.exe. See [1], [2] and [3]
- Auto Pak files are also supported, but you need to manually download, unzip and rename them and default.pak must be in the current directory.
- Note: for debugging purposes on Windows Mobile gosmore writes a file called gosmore.log.txt, which is written to the folder where gosmore.opt is located, too. On each start of Gosmore, the new logging text is appended, so this file grows from start to start. If you don't need logging information, delete this file after a while.
Alternatively build it with cegcc. check out the files as described above and (These instructions are for Ubuntu Lucid):
Create a temporary folder.
- mkdir ~/temp_gosmore
- cd ~/temp_gosmore
Download and install CeGCC.
- wget http://prdownloads.sourceforge.net/project/cegcc/cegcc/0.59.1/mingw32ce-0.59.1.tar.bz2
- tar xvjf mingw32ce-0.59.1.tar.bz2
- sudo cp -r ./opt/mingw32ce /opt
Download and extract required 32 bit libraries (required for 64 bit only).
- wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr/libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb
- wget http://mirrors.kernel.org/ubuntu/pool/main/g/gmp/libgmp3c2_4.3.2+dfsg-1ubuntu1_i386.deb
- dpkg -x libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb . (don't forget the '.' at the end)
- dpkg -x libgmp3c2_4.3.2+dfsg-1ubuntu1_i386.deb . (don't forget the '.' at the end)
- sudo cp usr/lib/* /usr/lib32/
Remove the temp directory
- cd ../
- rm -rf temp_gosmore
Add libraries to $PATH
- export PATH=/opt/mingw32ce/bin/:$PATH
- export LD_LIBRARY_PATH=/usr/lib32:/usr/lib:$LD_LIBRARY_PATH (required for 64 bit only).
cd to location of source files then
- make arm-mingw32ce-gosmore.exe
Windows
- Run the installer from the same site as above.
- Run Gosmore and find the city you are interested in. Select 'O' and then 'Update Map'. After downloading and unzipping is complete, restart the application.
- Alternatively, download a prebuilt rectangle or extract or build one yourself using Linux, as rebuilding under Windows is not supported[1].
- Or you can use the rebuild command as described above. You can even drag and drop extracts onto gosmore.exe.
- No registry settings are used. So you can have multiple installations of the software.
- Alternatively compile the Windows binary
Maemo
maemo devices from Nokia: See Gosmore for Maemo (2013-11-16: dead?!, last active in 2011)
Sound files
Please add more languages!
If you want louder sound files for the turn by turn instructions you can get them here. Even in different languages.
- English, male voice: gosmore-sounds-en-louder.tar.xz (louder than original)
- German, male voice: gosmore-sounds-de.tar.xz
- German, child voice: gosmore-sounds-de-child.tar.xz (as there are missing some instructions for the roundabouts you need the German male voice first and then the child voice to replace most of the sounds)
How to install
Just extract the archive (for Windows use 7zip) and copy the files to the folder where the Gosmore program resides.
User Interface
The main window consists of
- the buttons: Options, + zoom in / increase, - zoom out / decrease and 3D.
- the search box
- The main window with 4 modes:
- Map Click or drag to pan.
- Search Results. Direction, distance, type and names are displayed. Click to select.
- Options for selecting icon types, detail level and routing settings. Drag to see all of them. Click to select. See Gosmore/Translations Note that not all options are supported on all platforms.
- Add Object Type List. Select the object you want to add.
- Add Object Name dialog. Set the name.
- the location bar (GTK/Linux only) Copy and paste to / from JOSM or the www.openstreetmap.org permalinks.
The GTK version will look for way points in any selected text in any other application (clipboard mechanism). For example, you can select geocache log and click on the gosmore map window to see where the points are.
When you exit Gosmore it will also save your options and location to gosmore.opt. This file will normally be located in your home directory. Under Windows and Windows Mobile it will be stored in '\My Documents' unless the file was found on in the same directory as gosmore.exe at startup. So most people place an empty gosmore.opt file on their SD card.
At exit it will also create 'YYMMDD-HHMMSS-Vehicle.osm' and 'YYMMDD-HHMMSS.gpx' files that you can open with JOSM:
- Download data to the same layer.
- Edit. To find the pending changes search for 'modified'.
- Upload
- Changing the CommPort and BaudRate settings (Windows Mobile only) requires restarting the application.
- Activate ValidateMode to see unnamed roads.
- Activate FullScreen and restart for more screen space.
- Set Layout (Windows / Windows Mobile only) to 1 to hide the top bar. Set it to 2 on displays that are too narrow for the top bar (width less than 300 pixels).
- Some options like ViewInOSM and UpdateMap is only supported under Linux / Gnome, while others like ZoomIn/OutKey is only supported under Windows or Windows CE.
- LoadGPX is not implemented.
- Activate the 'Exit' option to close the application and write the GPX file, the OSM file and the options.
Cgi Routing Interface
Set the QUERY_STRING environment variable to e.g. "flat=-33.928889&flon=18.417222&tlat=-25.778618&tlon=28.290682&fast=0&v=motorcar" and run the executable. The parameters must be in this exact order. You must use the country decimal separator from your PC e.g. in Germany use a comma in place of a point or change your decimal separator for the shell.
Example for Ubuntu/Linux with a Germany Map:
shell> QUERY_STRING="flat=52.616870&flon=13.228430&tlat=52.601130&tlon=13.245730&fast=0&v=motorcar" shell> export QUERY_STRING shell> export LC_NUMERIC en_US shell> gosmore Content-Type: text/plain 52.617242,13.227067,J,(unknown-style),84,Zeisgendorfer Weg 52.616851,13.228609,J,(unknown-style),81,Zeisgendorfer Weg . . 52.601570,13.243311,J,(unknown-style),5,Heiligenseestraße 52.601548,13.243454,J,(unknown-style),5,Heiligenseestraße
Gosmore will produce one line for each node. The first 2 fields are the latitude and longitude. The third field is the junction type : Lower case when only 2 segments connect to that node (trivial junction), upper case otherwise. 't' for traffic_signals, 'm' for mini_roundabout and 'j' otherwise. This field can also contain a second letter 'r', indicating a roundabout.
Fourth field is 'v' of the way. Fifth field is the estimated number of seconds remaining. The sixth field is the name (if present, otherwise ref).
If no route was found, the output will start with a 'jump' line followed by the best incomplete route.
The complete routing stack is described in the Osm.org Routing Demo documentation.
Devices
Device | ComPort | BaudRate | Notes | Date |
---|---|---|---|---|
Asus MyPal A636N | 5 | 4800 | Works well. Also works well with a virtual COM port driver between the real COM port and gosmore. | 2009-04-20 |
Becker Traffic Assist (old version with Serial Number 7914....) | 1 | 9600 | Works | 2009-01-29 |
Binatone Carrera X350 | 7 | 38400 | Works well. Problem: No search window | 2008-08-22 |
CarTrek 600 | 7 | 57600 | Works.[2] | 2009-04-10 |
Connex (GPC35Js) | 7 | 57600 | Works.[3] | 2009-08-01 |
Easy Touch ET 907 | 1 | 4800 | seems to work ok. | 2009-01-09 |
ETEN M500 (w/BT GPS) | 7 | 4800 | Works well, but some of the dialogs don't work very well in a portrait-orientated screen | 2008-07-26 |
F & H N30 (Foehn & Hirsch N30) | 7 | 9600 | Working. Need to adjust parameters for button size & debounce before options screen usable. | 2010-05-31 |
Falk M-Series (M4 2nd Ed.) | 2 | 4800 | Works well (even works while the Falk-software announces the street-navigation) but often crashes after standby-mode. | 2009-01-28 |
Falk N240L | 3 | 57600 | Works well | 2009-03-26 |
Fujitsu Siemens Pocket Loox N100 | 4 | 9600 | seems to work ok; Problem: Full screen mode doesn't work. | 2009-03-12 |
Hakkapeliitta GPS | 1 | 38400 | For info on the device, see the web site [4] | 2008-11-23 |
HP iPaq hw6915 | 7 | 38400 | Works well. | 2008-08-22 |
HTC Hero Android2.1 | - | - | Seems to work | 2011-03-05 |
HTC Kaiser/P4550/TyTN II | 4 | 4800 | Seems to work fine, though some dialogues don't work that well in portrait orientation, and switching orientations once the program is already open (by sliding the keyboard) appears not to be supported. | 2008-09-09 |
HTC P3600 | 9 | 9600 | Taskbar gets a little bit in the way | 2008-06-28 |
JNC 578 | 7 | 38400 | Works well. | 2008-08-20 |
Lark 35.3 (w/SiRFstar III) | 1 | 9600 | Works fine | 2008-08-08 |
Medion MD 97130 (E3230) | 2 | 57600 | Works well. | 2011-02-09 |
Medion MD 97430 (E4430) | 2 | 57600 | Works well. | 2010-02-13 |
Medion MD 96700 | 1 | 4800 | seems to work ok. navigation ok. Search ok. Quick options ok. Saving .gpx ok. After closing gosmore one time you have to reboot the PDA or you will get an mmap error next time you try to start gosmore. | 2008-12-20 |
Medion MD 96860 / E3212 | 2 | 4800 | Works fine | 2009-09-15 |
Medion PNA240 | 2 | 4800 | Works well. | 2008-11-15 |
Mio C230 (running MioPocket) | 2 | 4800 | Works well. | 2008-08-20 |
Mio 269+ | 4 | 4800 | Works well. Announcements very quietly! | 2009-01-24 |
Mio Moov 200 | 2 | 57600 | Works well. Use only the builtin keyboard (Keyboard=0) | 2010-02-19 |
Mio Moov M305 | 2 | 57600 | Works well. | 2009-09-24 |
Mio P350 | 4 | 4800 | Works well. | 2008-09-03 |
Mio A510 Digiwalker / PDA with WM 5 | 2 | 57600 | Seems to work ok | 2008-09-14 |
MyRoad 4308T | 2 | 38400 | Works fine | 2008-07-15 |
Navgear StreetMate GP-35 | 7 | 4800 | Works, but very slow and some bugs in GUI. | 2011-06-20 |
Navigon Transonic 6000T | 2 | 4800 | Works well. Apparently the same hardware as Medion 510T, but I haven't verified this. | 2008-09-02 |
Navigon Transonic 7000 | 2 | 4800 | Works well. A bit faster than on the Transonic 6000T. And it has a bigger screen. | 2012-09-18 |
Navigon 5110 | ? | ? | Only works when .pak files of 23MB and smaller and only after reducing the storage memory. | 2008-08-31 |
NDrive g280 | 1 | 19200 | Works ok. | 2009-08-04 |
Navman S200 Platinum | 2 | 4800 | Works well. | 2010-05-30 |
Phonix | 5 | 4800 | Works perfectly | 2009-08-14 |
Photonav | 7 | 38400 | Seems to work ok. | 2009-09-12 |
Qtek 2020i, Windows Mobile 2003 | 6 | 4800 | Works. | 2009-09-19 |
TGPS 374 | 1 | 0 | Works perfectly | 2010-02-17 |
VDO Dayton MS2000 | 1 | 9600 | Works perfectly. The application to replace on the SD is "AutoUpgrade.exe". | 2008-08-20 |
XRoad v4150 | 5 | 9600 | Use SurfTech first to ensure that GPS is talking NMEA [5] | 2008-08-20 |
Tips and tricks
- Type the name of an item to the search in the line edit.
- To find nearby amenities enter the relevant tag value, e.g. fuel.
- To find the name of the area you are looking at, try to search for suburb, city or village.
- To see all the tags for an object, zoom in very close.
- Use the mouse wheel to zoom in and out
- Use the left mouse button to pan the map. Click above the center of the map to pan upwards, click below the center of the map to pan downwards and vice versa
- Linux / GTK only : Mark the starting point of the desired route with the middle mouse button and the end point with the right mouse button. Gosmore will paint the route into the map
- Set the render quality to lowest for a more responsive experience.
- For optimal battery life, only 'Follow' when you are looking at the display. A simple tap on the map will cancel the 'Follow' function. Even more power can be saved by selecting DisplayOff, turning the device into a dumb logger.
- If you have an already extracted OSM file, e.g. as output by the planetosm-excerpt-area.pl script, you can feed it into gosmore as well:
cat MyArea.osm | ./gosmore rebuild
- You can create a smaller pak file by specifying a cropping bounding box during a second pass. Even if the bounding box is the whole planet, the resultant file will have a better structure, e.g.
mv gosmore.pak master.pak bzcat planet...osm.bz2 | ./gosmore rebuild -83 -179 83 179
- It is also possible to include elevation contours in the rebuild.
Bugs
In order of importance:
- Routing is not calibrated. There are a number of special features, like avoidance of major intersections and turning over oncoming traffic, but the constants can be improved.
- Turn restrictions with complex vias are ignored.
- Verbal instructions do not work well on motorways.
- A number of important platforms aren't supported (OpenTom, Symbian, iphone etc).
- 32 bit machines can create and use only pak files smaller than 2GB. Rebuild gives segmentation fault on computers with less than 1GB of virtual memory.
- Pak file cannot be dynamically updated e.g. osmosis. However, since the objects we map (roads etc) change infrequently and mappers take very long to resurvey existing data, you will most likely only find the spots where the pak file is out of date if actively go looking for them.
- Pak file cannot be moved to a machine with a different endianness.
- If double decker bridges are drawn with 2 or more nodes on exactly the same latitude and longitude, gosmore may make incorrect routing decisions. (It can be solved at the cost of a 10% larger pak file).
- No way of completely disconnecting from GPS com port. Causes battery drain when internal GPS is activated by just connecting to the proper com port (on WM5 at least).
- When in current direction = up (north upwards=0) mode, stopping at a crossing causes slight precision improvements due to gps averaging which can shift position slightly in any (random) direction, which causes the map to rotate wildly, disorientating the driver (and probably giving wrong instructions if the route is recalculated). Probably a longer (eg 10 m distance, not time) average period should be used to determine direction before rotating the map.
Internals
Gosmore makes extensive use of sorted arrays, integers and fixed point numbers. See the current file format [6]
The source code has a low complexity (measured by Halstead Metric or SLOC), which may help to reduce the number of bugs. Also see Gosmore/Hacking
Comparable software
Navit is a much larger project. Its larger feature set may appeal to some users and developers. But complexity can also lead to problems like 'dependency hell', 'deep bugs' and a 'steeper learning curve'. Gosmore is able to route farther and faster, esp. devices with less RAMcitation needed. It also allows searching on a larger part of the datasetcitation needed and its Public Domain License may be preferable for certain applications.
Notes & references
- ↑ https://forum.openstreetmap.org/viewtopic.php?id=1478
- ↑ Apply 'Windows CE' instructions from this page. Get a SD card; create a '/MobileNavigator' directory; unzip gosm_arm.zip in that directory; rename 'gos_arm.exe' into 'MobileNavigator.exe' (the CarTrek-600 tries to execute this program on the flash card); put a gosmore.pak file (map found in a .zip) in the same directory; install the card; boot. To get the GPS location, you have to set ComPort=7 and BaudRate=57600, exit and restart as indicated. A user manual would be welcome. Interface is +/-/o; 'o' is for 'next Option' or Menu if 'QuickOption' is set to '1'.
- ↑ Same note as CarTrek 600. as /MobileNavigator/MobileNavigator.exe on the SD card.