Skip to content

Instantly share code, notes, and snippets.

Created July 4, 2015 02:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/419cbcb7abbf34d990a6 to your computer and use it in GitHub Desktop.
Save anonymous/419cbcb7abbf34d990a6 to your computer and use it in GitHub Desktop.
# ____ _____ __ __ ___ _____ ____
# / __ \ / ____| \/ |__ \| __ \ / __ \
# | | | | (___ | \ / | ) | |__) | | | |
# | | | |\___ \| |\/| | / /| ___/| | | |
# | |__| |____) | | | |/ /_| | | |__| |
# \____/|_____/|_| |_|____|_| \____/ DEFAULT CONFIGURATION
#
######################################################################
#
# CONVERTER
#
######################################################################
# Known Parsers detected by file extension.
# Other files or streams will be delegated to OsmXmlParser.
osmParser.pbf = de.cm.osm2po.plugins.parser.OsmPbfParser
osmParser.o5m = de.cm.osm2po.plugins.parser.OsmO5mParser
osmParser.o5m.gz = de.cm.osm2po.plugins.parser.OsmO5mGzParser
osmParser.osm.bz2 = de.cm.osm2po.plugins.parser.OsmXmlBz2Parser
# tileSize is the most important parameter for the conversion
# part. It controls the balance between available memory and
# the data size. The rule is simple: The more memory and the
# larger a tile the better. Examples:
# tileSize = 5x5 (Run with tileSize 5x5)
# tileSize = x, c (Run without tiling and run compression before)
# tileSize = 10x10, 0.5, c (Compress 10x10 with a buffer of 0.5)
# For most countries I recommend tileSize=x,c with -Xmx1408m.
#tileSize = 1x1,0.1
# A too small tileSize (size and/or buffer) ignores ways which have
# been tagged as one long section. In order to catch these,
# either increase the tileSize values or use the following option.
# Tipp: Read the Log while and/or after conversion,
# osm2po will report a warn message in such a case.
#rescueOrphanedWays = true
# osm2po's Joiner/TileManager must be able to cache lots of
# tiles (nodes). Therefore it has to estimate the remaining ram.
# If osm2po runs into OutOfMemoryErrors here, which mostly happens
# under 64 Bit Java, increase osm2po's own reservedXmx parameter (in Mb).
reservedXmx = 16384
# Skip regions with too few nodes (faster). Default is 0.
#tileThreshold = 100
# Usually caching as many tiles as possible is the fastest approach.
# In some cases, mostly if these tiles contain hardly any nodes,
# this optimization may cause the opposite effect.
maxTilesPerLoop = 100
# Very useful postprocess of the segmenter
# which renumbers vertexIDs by their location.
#useQuadTileOrder = true
# do not filter ways in the first conversion step
# and handle them later in the JoinFilter.
# Only recommended for small data.
disablePreFilter = true
# In order to modify ways programmatically
# the joinFilter is your first hook into the Java-API.
#joinFilter.class = de.cm.osm2po.converter.DefaultJoinFilter
# The DefaultJoinFilter also supports clipping of regions.
# Two LatLon-Pairs denote a rectangle, more than two a polygon.
# Multiple clippings must be separated by semicolons.
#joinFilter.boundings = 53.5,10.0,53.6,10.1,53.5,10.1,53.5,10.0
# If you need LonLat-Order set
#joinFilter.boundings.longitudeFirst = true
# If your coordinates come from a file, do sth. like this
#myPoly = @[path/to/poly.file]
#joinFilter.boundings = @[myPoly]; @[anotherPoly]; ...; 53.5,10.0...
######################################################################
#
# WAY TAG RESOLVER
#
######################################################################
# A TagResolver translates OSM-tags into a more useful set of information
# like name, speed, usage, ..., etc. If you need a special behavior,
# which cannot be handled by this default mechanism, feel free to implement
# your own TagResolver. The default WayTagResolver utilizes two 32bit-fields
# Each parsed osm-tag can modify flags in one of these fields
# either by allowing/setting bits (or-op.)
# or by denying/resetting bits (deferred inverse-and-op.).
#wayTagResolver.class = de.cm.osm2po.converter.DefaultWayTagResolver
# Using a prefix allows us to hold different configurations in one file
#wayTagResolver.prefix = wtr
# Custom flags with ascending binary values 1, 2, 4, 8 ...
# You can define up to 32 Flags (Bits).
wtr.flagList = car, bike, foot, rail, ferry, poly
# only convert ways containing one of these flags
#wtr.finalMask = car
#wtr.finalMask = car|bike
#wtr.finalMask = bike|foot
# very special hint for level_crossing modification
wtr.shuttleTrainMask = rail|car
# very special hint for ways which are not streets
wtr.polyMask = poly
# Main-Tag definitions. Params 1-4:
# 1) concurrent order
# 2) class (1-127)
# 3) default speed in kmh
# 4) allowed transportation type (optional) - since v4.5.30
wtr.tag.highway.motorway = 1, 11, 120, car
wtr.tag.highway.motorway_link = 1, 12, 30, car
wtr.tag.highway.trunk = 1, 13, 90, car
wtr.tag.highway.trunk_link = 1, 14, 30, car
wtr.tag.highway.primary = 1, 15, 70, car
wtr.tag.highway.primary_link = 1, 16, 30, car
wtr.tag.highway.secondary = 1, 21, 60, car
wtr.tag.highway.secondary_link = 1, 22, 30, car
wtr.tag.highway.tertiary = 1, 31, 40, car|bike
wtr.tag.highway.tertiary_link = 1, 32, 20, car|bike
wtr.tag.highway.residential = 1, 41, 40, car|bike
wtr.tag.highway.road = 1, 42, 50, car|bike
wtr.tag.highway.unclassified = 1, 43, 50, car|bike
wtr.tag.highway.service = 1, 51, 5, car|bike
wtr.tag.highway.living_street = 1, 63, 7, car|bike|foot
wtr.tag.highway.pedestrian = 1, 62, 5, bike|foot
wtr.tag.highway.track = 1, 71, 10, bike|foot
wtr.tag.highway.path = 1, 72, 10, bike|foot
wtr.tag.highway.cycleway = 1, 81, 15, bike
wtr.tag.highway.footway = 2, 91, 5, foot
wtr.tag.highway.steps = 2, 92, 5, foot
wtr.tag.route.ferry = 2, 1, 10, ferry
wtr.tag.route.shuttle_train = 2, 2, 50, rail|car
wtr.tag.railway.rail = 3, 3, 50, rail
#wtr.tag.area.yes = 2, 100, 0, poly
#wtr.tag.building = 1, 101, 0, poly
#wtr.tag.leisure = 1, 102, 0, poly
#wtr.tag.waterway.riverbank 1, 103, 0, poly
# Other tags may overwrite the transportion type definition above.
# They allow or explicitly deny things, so the finalMask can
# catch or drop a set of tags at the end.
# Tags without explicit values like wtr.deny.motorcar act like
# an else-part and will be used if no other tag=value matches.
# Since Version 4.5.30 you may substitute keys. e.g.
# 'wtr.deny.motor[_vehicle|car]' will be replaced by
# 'wtr.deny.motor_vehicle' and 'wtr.deny.motorcar'.
# Nested expressions like ..[...[...]].. are not supported.
wtr.allow.motor[car|_vehicle].[yes|destination] = car
wtr.allow.[bicycle|cycleway] = bike
wtr.allow.[footway|sidewalk] = foot
wtr.deny.tracktype.grade[4|5] = car|bike
wtr.deny.access.no = car|bike|foot|rail|ferry
wtr.deny.vehicle.no = car|bike
wtr.deny.motor[_vehicle|car] = car
wtr.deny.bicycle.no = bike
wtr.deny.foot.no = foot
wtr.deny.footway.none = foot
# Allow one or more osm-tags to override the default speeds above.
# The priority increases from left to right. Meaning, if more than one tag
# has been found, the last one will win. In order to disable this behavior,
# remove the following line or add a leading #.
wtr.maxSpeedTags = maxspeed
#wtr.maxSpeedTags = maxspeed, maxspeed:hgv
######################################################################
#
# RELATION TAG RESOLVER
#
######################################################################
#relationTagResolver.class = de.cm.osm2po.converter.DefaultRelationTagResolver
#relationTagResolver.prefix = rtr
# Populate Meta-Column in the PgRouting-Table with some Relation-Infos.
# Affects the DefaultRelationTagResolver.
#rtr.supportedRouteClazzes = bus, bicycle
#rtr.supportPolygons = true
#rtr.supportRestrictions = true
######################################################################
#
# NODE TAG RESOLVER
#
######################################################################
#nodeTagResolver.class = de.cm.osm2po.converter.DefaultNodeTagResolver
######################################################################
#
# LOGGER
#
######################################################################
# This is the LogLevel for global (log.level) and console (log.console.level)
# and file logging. Possible values are
# debug, progress, warn, info (default), error and fatal.
log.level = debug
log.file.level = debug
log.console.level = progress
#log.console.writer.class = de.cm.osm2po.logging.Log2poConsoleWriter
#log.console.writer.class = de.cm.osm2po.logging.LogJclWriter
# Redirecting of StandardOut (console).
# Possible values are out (default), err or null (quiet).
#log.console.to = err
######################################################################
#
# POSTPROCESSORS
#
######################################################################
postp.0.class = de.cm.osm2po.converter.PgRoutingWriter
#postp.0.writeMultiLineStrings = true
#postp.1.class = de.cm.osm2po.plugins.postp.PgVertexWriter
#postp.2.class = de.cm.osm2po.plugins.postp.PgPolygonWriter
#postp.2.assumeRingIsPoly = true
#postp.3.class = de.cm.osm2po.converter.MlgBuilder
#postp.3.id = 0
#postp.3.maxLevel = 3,10
#postp.4.class = de.cm.osm2po.sd.postp.SdGraphBuilder
# Pg*Writer usually create sql files. Enable the following
# parameter to redirect them to stdout (console)
#postp.pipeOut = true
# Tip 1:
# If you want this program to be one link in a transformation chain
# e.g. curl | bzcat | osm2po | psql
# you must set both, log.console.to=err and postp.pipeOut=true.
# It is recommended to run curl, bzcat and psql in silent/quiet mode.
# Example (one line):
# curl -s -L http://download.geofabrik.de/europe/germany/hamburg-latest.osm.bz2 |
# bzcat -c | java -jar osm2po-core.jar prefix=hh postp.pipeOut=true log.console.to=err |
# psql -q -U myuser -s -d mydb
# Tip 2:
# For the SdGraphBuilder it is highly recommended to convert
# with useQuadTileOrder=true and activated MlgBuilder in the
# prior conversion steps.
######################################################################
#
# OSM2PO-Routing
#
######################################################################
# This pluggable class translates other properties like kmh or flags
# and allows to mix in external data programmatically.
#graph.build.interceptor.class = de.cm.osm2po.converter.DefaultGraphBuildInterceptor
# osm2po doubles segments to handle forward and reverse directions.
# Reverse edges which are derived from one-way-segments are
# written by default. This is useful for bike routing but
# not for car routing and blows up your graph.
# To exclude these "WrongWays" set the following parameter to true
#graph.build.excludeWrongWays = true
# Runtime parameters for the osm2po-Graph:
# In order to speed up geometry lookups you may want to set
# graph.support.segments=true. This disables HardDisk-Lookups but needs
# much more RAM (Xmx). Setting graph.support.edgeflags=true is useful
# for Soap/GeoJson-Requests. If not set, you will not receive street type infos.
# Setting graph.support.reverse=true creates an additional Reverse-Graph.
# graph.support.raster[.e|.v] is another RAM-consuming addition, which creates
# a rastered index for vertices (v) or edges (e) or if '.e' and '.v'
# are missing, for both.
#graph.support.segments = true
#graph.support.edgeflags = true
#graph.support.reverse = true
#graph.support.raster = true
#graph.support.raster.e = true
#graph.support.raster.v = true
#graph.support.barriers = true
#graph.support.extensions = true
# Here are osm2po's router implementations. They base on modified
# Dijkstra/AStar algorithms. Ovl-Routers are able to start and finish
# at any point, not only at links. Mlg-Routers need preprocessed data by the
# MlgBuilder (see above), otherwise they will fall back to default behavior.
# In order to take the latter into account at runtime you must
# set graph.support.extensions = true (see above)
# The MlgBuilder defines IDs for different use cases, as there are:
# ID 0 : Default Car-Routing with TurnRestrictions.
# ID +1 : For Shortest Path (not recommended)
# ID +2 : Ignore OneWay-Restrictions
# ID +4 : Ignore Turn-Restrictions
#router.0.class=de.cm.osm2po.routing.DefaultRouter
#router.1.class=de.cm.osm2po.routing.EdgeRouter
#router.2.class=de.cm.osm2po.routing.PoiRouter
#router.3.class=de.cm.osm2po.routing.OvlRouter
#router.4.class=de.cm.osm2po.routing.OvlEdgeRouter
#router.5.class=de.cm.osm2po.routing.OvlPoiRouter
#router.6.class=de.cm.osm2po.routing.MlgRouter
#router.7.class=de.cm.osm2po.routing.MlgRevRouter
#router.8.class=de.cm.osm2po.routing.MlgBidiRouter
#router.9.class=de.cm.osm2po.routing.MlgOvlEdgeRouter
# sample resolver and router from the plugins package which
# demonstrates how to take traffic signals into account
# and how to visualize them in the WebTestUI
#nodeClazz.1.name=TrafficSignals
#nodeTagResolver.class=de.cm.osm2po.plugins.routing.TrafficSignalsNodeTagResolver
#router.11.class=de.cm.osm2po.plugins.routing.TrafficSignalsRouter
######################################################################
#
# OSM2PO-TinyWebServer (HTTP-GET/SOAP)
#
######################################################################
#service.domain = localhost
#service.port = 8888
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment