ShareNav

From OpenStreetMap Wiki
Jump to navigation Jump to search
ShareNav
ShareNav map.png
Authors: Jyrki Kuoppala, S. Hochmuth, Kai Krueger, Harald Mueller, Markus Baeurle & others
License: GNU General Public License v2 (€2.99 on Google Play Store (may vary depending on local taxes))
Platforms: Android, Java ME, Windows, Windows 2000, Windows XP, Linux, and macOS
Status: Unmaintained
Version: 0.8.8 (2012-11-12)
Languages: English, German, Finnish, Czech, Polish, Russian, French, Italian, Spanish, and Slovak
Website: https://github.com/sharenav/sharenav/
Source code: https://github.com/sharenav/sharenav/
Programming language: Java

very portable navi for Android&J2ME mobile phones, uses offline vector maps, audio navigation

Viewing maps

ShareNav is an open source navigation, tracker, map editor & map viewer software. The first version of ShareNav is based on GpsMid code version 0.8.2. First released version of ShareNav was 0.8.4 on October 28th, 2012, current version can be seen in the info box on the page. New features in ShareNav as compared to GpsMid are currently:

  • more support for raster maps (showing windowed raster maps)
  • a keep on road function
  • automatic day/night display mode switching
  • a possibility to build the program for laptop/desktop use, with working GPS location like on mobile devices, if gpsd is running on the computer
  • some support for online services (currently relevant to region of Helsinki, Finland): show address, show nearest public transport stop
  • ability to install on SD card on Android
  • ready-to-use app + map combinations available with recent map data for selected countries from Google play store (currently the Nordic countries and some Central European countries)

Features planned for the future are online functions and making the UI better for Android and more support for public transport.

ShareNav is free software licensed under the GPL, version 2.

Introduction

Overview

ShareNav provides vector based rendering of OSM data. OSM data is pre-compiled into an efficient binary representation with information for routing as well as map drawing. ShareNav can be run on a mobile equipment with Android or J2ME. ShareNav can also be used on a laptop or desktop computer with a Java runtime environment, though it probabl will have some loss of functionality & comfort of using, compared to mobile versions. Basic functions like map viewing and searches do work also on the laptop/desktop. Also acquiring and showing a GPS position will work if gpsd is running on the computer.

Features

  • show & use location using a GPS receiver or Cell-id based location (using OpenCellID))
  • Vector rendering, arbitrary map zoom, auto rotating in movement direction
  • Optional showing of raster maps from a tile server (not required for navigation and map viewing), either with raster map as background and vector map as an overlay, or two maps each in their own windows
  • Customization of rendering styles through a StyleSheet
  • Search for road / POI names, search for closest POI of some category
  • Recording GPX tracks, storing waypoints
  • Uploading GPX tracks directly to OSM server
  • Turn-by-turn voice guided navigation calculated inside the application itself, supporting different modes of transport e.g. cycling and walking in addition to car
  • Adding new POIs to OSM directly from your phone
  • Editing tags on existing ways and POIs
  • OpenCellID logging (an interface to the upload api is found here)
  • a keep on road function
  • automatic day/night display mode switching
  • a possibility to build the program for laptop/desktop use, with working GPS location like on mobile devices, if gpsd is running on the computer
  • some support for online services (currently relevant to region of Helsinki, Finland): show address, show nearest public transport stop
  • ability to install on SD card on Android
  • ready-to-use app + map combinations available with recent map data for selected countries from Google play store (currently the Nordic countries and some Central European countries)

Supported / Unsupported Phones and other devices

ShareNav works on Android and laptop/desktop Java runtime, and a large set of smart and feature phones as well as some other devices supporting Android or mobile java (J2ME). For J2ME, the support is largely like on GpsMid, details omitted for brevity, look at the GpsMid entry for that.

Installing ShareNav

For Android, ShareNav can be installed from Google Play Store, formerly known as the Android Market. For the laptop & desktop, an Osm2ShareNav program to build map & app bundles can be downloaded from the ShareNav SourceForge Files section. See the ShareNav wiki page on Osm2ShareNav for instructions on how to build the app+map bundle for J2ME or laptop/desktop.

Development

Information about development can be found via the ShareNav wiki. The public repository for ShareNav is at GitHub.

Creating maps for ShareNav

ShareNav project has a java application, Osm2ShareNav, to be run on a laptop or desktop computer which can be used to create the vector-based offline maps (with routing data) for ShareNav. Osm2ShareNav is available at https://sourceforge.net/projects/sharenav/files/. Maps created for GpsMid will also work.

Map

As an offline map application, ShareNav needs to store the data on the device. ShareNav uses its own binary data format to be as efficiently as possible in size requirements, as well as optimise for routing. Therefore, the raw data from OpenStreetMap has to be converted and bundled into a map data bundle. This is done by using the Osm2ShareNav converter that runs on your PC (not your phone)

As many (older) java phones are / were not very good at dealing with external files, the default method is to bundle the data into the application .jar or .apk file. But also external maps are supported, and are probably easier to use for modern platforms and devices like Android.

Download pre-bundled map

For easy use (don't need to do the bundling step yourself), there are some pre-bundled maps available for download for GpsMid that can directly be uploaded to your phone. They can be used for ShareNav too, see GpsMid for details.

Creating custom maps

To create ShareNav build with map data for your own regions, you first have to download the raw data from OpenStreetMap (typically *.pbf.bz2, *.osm.bz2 or *.osm). Then in the conversion using Osm2ShareNav (or Osm2GpsMid from the GpsMid project), a subset of the downloaded data (defined by up to 9 rectangular regions) will be included in the generated bundle.


Obtaining OSM data

There are a number of options to obtain the raw data of OSM.

Using something other than planet extracts is strongly discouraged other than for very small regions (a few streets).

Configuring your map

Osm2ShareNav provides a graphical user interface (GUI) to selecting many of the configuration options for the map building & bundling process. For more advanced options (for which there's no GUI functionality), there is also the option to configure the conversion process through a text file (.properties file).

Map bundles (J2ME and J2SE, also known as Java ME and Java SE)

It's also possible to create a map bundle, which in ShareNav terminology means a bundle of a map and a ShareNav program to be run on the devices. This can be useful especially for J2ME devices with limited access to external maps. It's also useful for producing a map + app bundle to run on a desktop or laptop computer.

One of the parameters to set is the "Phone capabilities". Although J2ME was designed to write once run everywhere, not all implementations of Java on phones is fully compatible with each other. Therefore ShareNav provides a couple of different options to increase you chance of it working. You can also influence how and if ShareNav will use online services with the selection of "Phone capabilities".

For J2ME, in nearly all cases, Generic-full-connected or Generic-full should be used, as they provide the most comprehensive set of features. For Java SE (desktop or laptop target), choose target Generic-java-full-connected.

Information on the properties file syntax is in ShareNav wiki Properties page.

ShareNav's OSM editing capabilities

ShareNav is not a full OSM editor, but allows for some data maintenance in the field.

Currently, ShareNav allows you to select a way or POI in the map and edit or add tags of that way or POI and directly upload the changes to the main OpenStreetMap database. This can be useful for example to quickly add a missing name, a speed restriction, set it to oneway or add some of the other meta data that is often still missing from ways. POIs can also be added.

ShareNav also supports opening the area shown on the map for editing via a web browser with Potlatch.

manage Audio

It is possible to use ShareNav for Audio Mapping as it allows the user to record sound clips, and creates a GPX waypoint associated with each clip. The audio clips and GPX file can then be processed for use in JOSM for mapping.

The process for doing is explain below:

record voice

  • Record an audio clip by double clicking the '#' key or select the function from the menu
  • Stop the recording by double clicking the '#' key again.

This process leaves you with a lot of audio clips in your phones memory, and the GPX waypoints hidden in ShareNav's own storage area. To get these in to JOSM on your PC, do the following:

  • In ShareNav, go to 'Manage Waypoints' from the map screen. Select 'Send All'. I have this configured to write to C:\Other - the same place as the audio clips go. This puts a file 'waypoints.gpx' in C:\Other on the mobile phone.
  • Exit ShareNav and use your phone's file manager to send the files to your PC, using either bluetooth or a USB connection. Store the GPX file and the audio clips (*.amr) in the same directory on your PC.

use in josm

  • To use these in JOSM, the audio files need converting into .wav files, and the GPX file needs <link> tags adding to point to the audio files. A little python script amr2wav can be used to do this. Just running "amr2wav" in the directory containing the files should be all you need to do [Note though that you need ffmpeg to do the conversions. It might be necessary to re-compile ffmpeg from source to add amr support]. This creates a .wav file for each .amr file referenced in the GPX data, and a new GPX file "waypoints_wav.gpx".
  • Start JOSM and open "waypoints_wav.gpx". You should see a marker for each audio file. Clicking on the marker should play the clip.
  • Job done!


Supported files

File extensions that could be used in this article and are useful with ShareNav (creating map, recording data).

  • GPX :file for storage lat/long/name location
  • amr : audio file compatible with many mobile devices and software ( amr2wav/nokia audio/ real player)
  • png : read raster image for poi
  • .xml/.dtd read have default name style-file that define default display style but can be custom ( see ShareNav/StyleSheet )
  • osm : specific vector format file of osm map for storage data directly on filesystem instead database.
  • properties : file use to specify boundingbox, stylesheet and tag information that is used by ShareNav.