User:Rubke/ChangeRendering
Jump to navigation
Jump to search
target: render daily changes in mapnik overlay
url: website
Create a daily table copy
CREATE TABLE planet_osm_line_old AS SELECT * FROM planet_osm_line
sql query
to generate the "planet_osm_line_changes" table
DROP TABLE planet_osm_line_changes; CREATE TABLE planet_osm_line_changes AS SELECT MIN(TableName) as TableName, osm_id, name, z_order, way FROM ( SELECT 'planet_osm_line' as TableName, planet_osm_line.osm_id, planet_osm_line.name, planet_osm_line.z_order, planet_osm_line.way FROM planet_osm_line UNION ALL SELECT 'planet_osm_line_old' as TableName, planet_osm_line_old.osm_id, planet_osm_line_old.name, planet_osm_line_old.z_order, planet_osm_line_old.way FROM planet_osm_line_old ) tmp GROUP BY osm_id, name, z_order, way HAVING COUNT(*) = 1 ORDER BY osm_id; CREATE INDEX planet_osm_line_changes_index ON planet_osm_line_changes USING gist (way); CREATE INDEX planet_osm_line_changes_pkey ON planet_osm_line_changes USING btree (osm_id);
don't forget to add this row (once) to the geometry_colums tables
insert into geometry_columns values ('','public','planet_osm_line_changes','way',2,900913,'LINESTRING');
tilecache setup
[changes] type=MapnikLayer bbox=311549.5,6555477.5,822458.8125,7118943.5 resolutions=156543.0,78271.5,39135.75,19567.875,9783.9375,4891.96875,2445.984375,1222.9921875,611.49609375,305.748046875,152.874023438,76.4370117188,38.2185058594,19.1092529297,9.55462646484,4.77731323242,2.38865661621,1.19432830811,0.597164154053,0.298582077026 srs=OSGEO:41001 metaTile=yes metaBuffer=40 mapfile=/home/rubke/osm-changes.xml debug=1 tms_type=google projection=+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over
Mapnik stylesheet
osm-changes.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map>
<Map bgcolor="transparent" srs="+proj=merc +datum=WGS84 +k=1.0 +units=m +over +no_defs">
<Style name="changes">
<Rule>
<Filter>[tablename]='planet_osm_line'</Filter>
<LineSymbolizer>
<CssParameter name="stroke">blue</CssParameter>
<CssParameter name="stroke-width">4</CssParameter>
</LineSymbolizer>
</Rule>
<Rule>
<Filter>[tablename]='planet_osm_line_old'</Filter>
<LineSymbolizer>
<CssParameter name="stroke">red</CssParameter>
<CssParameter name="stroke-width">4</CssParameter>
</LineSymbolizer>
</Rule>
</Style>
<Layer name="changes" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
<StyleName>changes</StyleName>
<Datasource>
<Parameter name="type">postgis</Parameter>
<Parameter name="host">/tmp</Parameter>
<Parameter name="user">mapnik</Parameter>
<Parameter name="dbname">osm</Parameter>
<Parameter name="table">planet_osm_line_changes</Parameter>
<Parameter name="estimate_extent">true</Parameter>
</Datasource>
</Layer>
</Map>