Skip to content

Instantly share code, notes, and snippets.

View springmeyer's full-sized avatar

Dane Springmeyer springmeyer

View GitHub Profile
#!/usr/bin/env python
import os
import sys
from lxml import etree
from lxml import objectify
keys = []
if __name__ == "__main__":
# turn a django model into a mapnik datasource
def model_to_mapnik_ds(model,geom_name=None):
params = {'user':settings.DATABASE_USER,
'dbname':settings.DATABASE_NAME,
'password':settings.DATABASE_PASSWORD,
'user':settings.DATABASE_USER
}
if geom_name:
geom_field = [f for f in model._meta.fields if f.name == geom_name][0]
else:
<Parameter name="table"><![CDATA[
(SELECT *,
(CASE WHEN round(way_area * 1000000) >= 20 THEN 'large'
WHEN round(way_area * 1000000) >= 1 THEN 'medium'
ELSE 'small' END) AS size,
REGEXP_REPLACE(UPPER(name), '(.)', E'\\1\xC2\xA0\xC2\xA0', 'g') AS name_stretched
FROM planet_osm_polygon
WHERE building IS NOT NULL
ORDER BY z_order ASC, way_area DESC) AS citylike]]></Parameter>
<Map bgcolor="#8cb6d3" 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">
<Style name="line style 1">
<Rule><MaxScaleDenominator>99999</MaxScaleDenominator><LineSymbolizer><CssParameter name="stroke-width">13.0</CssParameter><CssParameter name="stroke">#a1cbea</CssParameter><CssParameter name="stroke-linejoin">round</CssParameter></LineSymbolizer></Rule>
<Rule><MinScaleDenominator>100000</MinScaleDenominator><LineSymbolizer><CssParameter name="stroke-width">9.0</CssParameter><CssParameter name="stroke">#a1cbea</CssParameter><CssParameter name="stroke-linejoin">round</CssParameter></LineSymbolizer></Rule>
</Style>
<Layer name="layer 2" 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" status="on">
<StyleName>line style 1</StyleName>
<Datasource>
<Parameter name="type">shape</Parameter>
asdfasdf