Skip to content

Instantly share code, notes, and snippets.

@springmeyer
Created August 27, 2012 19:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save springmeyer/3491644 to your computer and use it in GitHub Desktop.
Save springmeyer/3491644 to your computer and use it in GitHub Desktop.
Re-implement the visualization from https://github.com/shawnbot/concoct in one fell swoop using Mapnik 2.1
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map [
<!-- compositing mode: https://github.com/mapnik/mapnik/blob/master/include/mapnik/image_compositing.hpp#L42-79 -->
<!ENTITY comp_op "darken">
<!-- leave blank to render all data or set to some integer to render faster -->
<!ENTITY row_limit "">
<!-- size of marker ellipse -->
<!ENTITY point_size "7">
]>
<Map
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 +wktext +no_defs"
background-color="white"
minimum-version="2.1.0"
>
<!--
trees,crimes,cabs: rgb/cmy(k)
https://github.com/shawnbot/concoct
git clone https://github.com/shawnbot/concoct
cd concoct
nik2img.py -f png -d 1000 1000 -c -122.43 37.758 -z 13 --bbox-factor 1.5 re-concoct.xml mapnik.png
-->
<Style name="trees" comp-op="&comp_op;">
<Rule>
<MarkersSymbolizer fill="cyan" width="&point_size;" stroke-width="0" allow-overlap="true" />
</Rule>
</Style>
<Style name="crimes" comp-op="&comp_op;">
<Rule>
<MarkersSymbolizer fill="magenta" width="&point_size;" stroke-width="0" allow-overlap="true" />
</Rule>
</Style>
<Style name="cabs" comp-op="&comp_op;">
<Rule>
<MarkersSymbolizer fill="yellow" width="&point_size;" stroke-width="0" allow-overlap="true" />
</Rule>
</Style>
<Datasource name="csv-data">
<Parameter name="type">csv</Parameter>
<Parameter name="base">./data/</Parameter>
<Parameter name="row_limit">&row_limit;</Parameter>
</Datasource>
<Layer name="trees" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>trees</StyleName>
<Datasource base="csv-data">
<Parameter name="file">trees.csv</Parameter>
</Datasource>
</Layer>
<Layer name="crimes" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>crimes</StyleName>
<Datasource base="csv-data">
<Parameter name="file">crimes.csv</Parameter>
</Datasource>
</Layer>
<Layer name="cabs" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>cabs</StyleName>
<Datasource base="csv-data">
<Parameter name="file">cabs.csv</Parameter>
</Datasource>
</Layer>
</Map>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment