# $Id:$ # # Copyright (C) 2003-2008 The Xastir Group # # This dbfawk file is used to map arbitrary dbf data that accompanies # a shapefile into Xastir canoncical values of: # key - search key # lanes - width of feature (usually a road but applies to rivers, etc. too) # color - color to draw the road # name - name of the road for labels # filled - whether a polygon is drawn filled or not # fill_color - color to fill polygon with # pattern - line pattern for road, river, etc. (0 - solid; 1 - dash; 2 - double dash) # display_level - highest zoom level at which to display the feature # label_level - highest zoom level at which to display the label # symbol - 3 char 'TIO': table, ID, overlay # NOTE: This file format is modeled after awk but is nowhere near awk # compatible. # # This file is used to map OpenStreetMap sourced Shapefiles # specifically the roads.dbf file # # BEGIN is called once per dbf file which contains multiple records. BEGIN { # dbfinfo is the "signature" of the dbf file listing the column names in order. # dbfinfo should match the dbf file that we say this dbfawk file goes with. dbfinfo="osm_id:name:ref:type:oneway:maxspeed"; #dbffields is which of the above fields we actually want to look at. # No point reading dbffields that are not looked at further. dbffields="name:type"; } # BEGIN_RECORD is called once per dbf record which contains multiple fields. # Use this rule to re-initialize variables between records. # use color 11 to highlight stuff that isn't properly mapped. BEGIN_RECORD {key=""; lanes=1; color=8; fill_color=11; name=""; filled=0; pattern=0; display_level=8192; label_level=32; label_color=8; font_size=0; symbol=""; fill_style=0 } # per-field rules are applied to the dbffields that are read from each record.# key: set the search key to be the Tiger/Line ID. Not currently used. /^osm_id=(.*)$/ {key=$1; next} # name: concatenate FEDIRP (direction prefix), FENAME (name), # FETYPE (type: Rd, Ln, Pky, etc.) and FEDIRS (direction suffix). # also abbreviate United States Highway to US, etc. /^name=(.*)$/ {name="$(name)$1"; next} # Census Feature Class Codes are used to set lanes, color, display_level, etc. /^type=motorway/ {lanes=4; color=4; label_level=512; font_size=3; next} /^type=trunk/ {lanes=3; color=8; label_level=256; font_size=2; next} /^type=primary/ {lanes=2; color=8; label_level=128; font_size=1; next} /^type=secondary/ {lanes=2; display_level=128; font_size=1; next} /^type=tertiary/ {display_level=128; label_level=16; color=66; lanes=1; next} /^type=residential/ {lanes=1; color=44; display_level=32; label_level=16; font_size=1; next} /^type=service/ {lanes=1; color=12; display_level=64; next} /^type=unclassified/ {lanes=1; color=8; pattern=2; display_level=64; next} /^type=unsurfaced/ {lanes=1; color=40; pattern=2; display_level=64; next} /^type=(.*)$/ {lanes=1; color=105; display_level=16; next} # just a demo of the END_RECORD and END rules: #END_RECORD {name="$name ($key)";} #END {}