Package uk.me.parabola.mkgmap.reader.osm

OpenStreetMap converter

See:
          Description

Interface Summary
OsmConverter  
OsmReadingHooks Allows common code to be called during the reading of OSM files in both their XML and binary formats.
Rule A rule takes an element and returns the correct garmin type for it.
Style A style converts an OSM element into a garmin element.
TypeResult Interface for adding a map element to the map.
 

Class Summary
CoastlineElementSaver This saver only keeps ways with natural=coastline tags.
CoastlineFileLoader  
CoastlineFileLoader.CoastlineWay  
CoordPOI A coordinate that has a POI
Element Superclass of the node, segment and way OSM elements.
ElementSaver This is where we save the elements read from any of the file formats that are in OSM format.
FakeIdGenerator  
GeneralRelation A relation to use when no special treatment is required, or when the relation type is not recognised.
GType Holds the garmin type of an element and all the information that will be needed to represent it on the map.
HighwayHooks Operations mostly on highways that have to be performed during reading the OSM input file.
MultiPolygonRelation Representation of an OSM Multipolygon Relation.
The different way of the multipolygon are joined to polygons and inner polygons are cut out from the outer polygons.
Node A node with its own identity.
OsmHandler Base class for OSM file handlers.
OsmMapDataSource Base class for OSM map sources.
OsmReadingHooksAdaptor Provides empty implementation of all methods so that subclass that only need a few can just implement the ones they want.
OsmReadingHooksChain A single class that holds several OsmReadingHooks and calls them in order.
Relation Represent a Relation.
RestrictionRelation Representation of an OSM turn restriction
SeaGenerator Code to generate sea polygons from the coastline ways.
SeaPolygonRelation A relation used by the sea generation code.
StyleInfo Information about a style.
Tags Store the tags that belong to an Element.
WatchableTypeResult At the top level we need to be able to watch to see if a result was found to implement stop-on-first-match, continue and the like.
Way Represent a OSM way in the 0.5 api.
 

Package uk.me.parabola.mkgmap.reader.osm Description

OpenStreetMap converter

This package has the code to read in a file that is in the Open Street Map format (.osm files). OSM uses an XML format. The bulk of the code exists to map from the OSM format to the garmin types. In general we need to look at several tags to decide on the correct garmin feature type to use. The initial versions of mkgmap could only deal with cases where a single tag value was sufficient. This was simple and works for a large number of cases, but makes some things completely impossible. The new style system will remove this limitation.

Version 0.4 of the api is no longer supported.

OSM api version 0.5

This version of the format does away with segments. Ways are sequences of nodes. As such it matches the format that we require for the Garmin maps much closer than the previous version of the api. Ways cannot branch or have out of order segments, so all the code that deals with that is not required.

About the conversion

The following features of the OSM format need to be addressed to create the map.

Feature list conversion

The main way of getting a garmin feature code from the OSM tags on a point is to have a table that maps OSM key/value pairs to the Garmin type/sub-type codes. This is fine in many cases, but we will eventually need something more.

A file called feature_map.csv holds the table. In addition it also holds the minimum resolution that the feature will appear at. This determines at which zoom levels a feature appears.

New Style Converter

With this style converter you can have several named styles which can be built into mkgmap. A style consists of a number of different files held in a directory. The different files mean that there is a lot more flexibility available.

Files

The version 0 list of files is as follows.
version
Every style must have a version file. It contains a single number.
map-features.csv
This is the map features file exactly as before.