[OSM-dev] Mapnik style Problem

Sven Geggus lists at fuchsschwanzdomain.de
Thu Dec 22 14:39:26 GMT 2011


Hello,

I'm trying to render a hillshade+contour baselayer. This is loosely based on the
manual in the Wiki http://wiki.openstreetmap.org/wiki/HikingBikingMaps.

Looks like my stylefile is somewhat broken because calling nik2img.py I get
this:

...
Step: 14 // --> Extent of all layers: Envelope(-3.14159265359,-1.57079632679,20037508.3428,59613540.2073)
Step: 15 // --> Long/lat extent of all layers: Envelope(-2.8221406972e-05,-1.41107034975e-05,180.0,89.99)
...

This is certainly wrong and looks like mixed lat/long and google mercator
coordinates. The result is that my Objects from PGSQL are assumed to be
outside of the map.

...
Step: 16 // --> Long/lat center of all layers: Coord(89.9999858893,44.9949929446)
Step: 17 // --> No layers intersecting map!
...

Here is how nik2img.py is called:
nik2img.py hill_style.xml foo.png  -b -17.35010 28.07573 -17.31736 28.11230 --no-open -v

And here is hill_style.xml:

---cut---
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map>
<Map bgcolor="#B4B4B4" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">

<Style name="contours10">
        <Rule>
                <MaxScaleDenominator>50000</MaxScaleDenominator>
                <MinScaleDenominator>1599</MinScaleDenominator>
                <LineSymbolizer>
                        <CssParameter name="stroke">#666666</CssParameter>
                        <CssParameter name="stroke-width">0.3</CssParameter>
                </LineSymbolizer>
        </Rule>
</Style>
<Style name="contours50">
        <Rule>
                <MaxScaleDenominator>150000</MaxScaleDenominator>
                <MinScaleDenominator>1599</MinScaleDenominator>
                <LineSymbolizer>
                        <CssParameter name="stroke">#666666</CssParameter>
                        <CssParameter name="stroke-width">0.5</CssParameter>
                </LineSymbolizer>
        </Rule>
</Style>
<Style name="contours100">
        <Rule>
                <MaxScaleDenominator>409483</MaxScaleDenominator>
                <MinScaleDenominator>1599</MinScaleDenominator>
                <LineSymbolizer>
                        <CssParameter name="stroke">#555555</CssParameter>
                        <CssParameter name="stroke-width">0.5</CssParameter>
                </LineSymbolizer>
        </Rule>
</Style>
<Style name="contours-text50">
        <Rule>
                <MaxScaleDenominator>20000</MaxScaleDenominator>
                <MinScaleDenominator>1599</MinScaleDenominator>
                <TextSymbolizer name="height" face_name="DejaVu Sans Book" size="9" fill="#4F2B00" halo_radius="1" halo_fill= "#ffffff" placement="line" max_char_angle_delta="30" />
        </Rule>
</Style>
<Style name="contours-text100">
        <Rule>
                <MaxScaleDenominator>50000</MaxScaleDenominator>
                <MinScaleDenominator>20000</MinScaleDenominator>
                <TextSymbolizer name="height" face_name="DejaVu Sans Book" size="9" fill="#4F2B00" halo_radius="1" halo_fill= "#ffffff" placement="line"  max_char_angle_delta="30" />
        </Rule>
        <Rule>
                <MaxScaleDenominator>20000</MaxScaleDenominator>
                <MinScaleDenominator>1599</MinScaleDenominator>
                <TextSymbolizer name="height" face_name="DejaVu Sans Book" size="10" fill="#381D00" halo_radius="1" halo_fill= "#ffffff" placement="line"  max_char_angle_delta="30" />
        </Rule>
</Style>



    <Style name="raster">
      <Rule>
        <RasterSymbolizer>
          <CssParameter name="opacity">1.0</CssParameter>
          <CssParameter name="scaling">bilinear</CssParameter>
          <!--<CssParameter name="mode">multiply</CssParameter>-->
        </RasterSymbolizer>
      </Rule>
    </Style>


<Layer name="srtm_10" status="on" srs="+proj=latlong +datum=WGS84">
        <StyleName>contours10</StyleName>
        <StyleName>contours-text10</StyleName>
        <Datasource>
                <Parameter name="type">postgis</Parameter>
                <Parameter name="host"></Parameter>
                <Parameter name="port"></Parameter>
                <Parameter name="user"></Parameter>
                <Parameter name="password"></Parameter>
                <Parameter name="dbname">geg</Parameter>
                <Parameter name="estimate_extent">false</Parameter>
                <Parameter name="table">(select way,height from contours WHERE height::integer % 10 = 0 AND height::integer % 50 != 0 AND height::integer % 100 != 0) as "contours-10"</Parameter>
                <Parameter name="extent">-180,-90,180,89.99</Parameter>
        </Datasource>
</Layer>
<Layer name="srtm_50" status="on" srs="+proj=latlong +datum=WGS84">
        <StyleName>contours50</StyleName>
        <StyleName>contours-text50</StyleName>
        <Datasource>
                <Parameter name="type">postgis</Parameter>
                <Parameter name="host"></Parameter>
                <Parameter name="port"></Parameter>
                <Parameter name="user"></Parameter>
                <Parameter name="password"></Parameter>
                <Parameter name="dbname">geg</Parameter>
                <Parameter name="estimate_extent">false</Parameter>
                <Parameter name="table">(select way,height from contours WHERE height::integer % 50 = 0 AND height::integer % 100 != 0) as "contours-50"</Parameter>
                <Parameter name="extent">-180,-90,180,89.99</Parameter>
        </Datasource>
</Layer>
<Layer name="srtm_100" status="on" srs="+proj=latlong +datum=WGS84">
        <StyleName>contours100</StyleName>
        <StyleName>contours-text100</StyleName>
        <Datasource>
                <Parameter name="type">postgis</Parameter>
                <Parameter name="host"></Parameter>
                <Parameter name="port"></Parameter>
                <Parameter name="user"></Parameter>
                <Parameter name="password"></Parameter>
                <Parameter name="dbname">geg</Parameter>
                <Parameter name="estimate_extent">false</Parameter>
                <Parameter name="table">(select way,height from contours WHERE height::integer % 100 = 0) as "contours-100"</Parameter>
                <Parameter name="extent">-180,-90,180,89.99</Parameter>
        </Datasource>
</Layer>

</Map>
---cut---

TIA for hints.

Sven

P.S.: the mapnik-version in use is 0.7.1-3 from debian stable

-- 
Unix is simple and coherent, but it takes a genius – or at any rate a
programmer – to understand and appreciate the simplicity
(Dennis M. Ritchie)
/me is giggls at ircnet, http://sven.gegg.us/ on the Web



More information about the dev mailing list