You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2013-03-08 22:52:44

Vize11
Member
Registered: 2013-02-26
Posts: 33

Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Hallo zusammen,

beim Rendern mit Mapnik ist mir aufgefallen, dass in Deutschland auch Kreis-, Bezirks- oder ähnliche Grenzen gerendert werden.
Diese Verwaltungsgrenzen findet man unter boundary=administrative mit verschiedenen Ausprägungen (admin_level).
In den gerenderten Tiles erscheinen dann die entsprechenden Linien, sowie die dazugehörigen Bezeichnungen der Kreise, Bezirke entlang dieser Linien.

Zum Rendern der Linien findet man im von mir genutzten, deutschen Stil (http://home.arcor.de/andre.joost/myMapnik.zip) folgende Passagen in der osm-de.xml:

Styles:

<Style name="admin-01234-casing">
   <Rule>
      <Filter>[admin_level]='2'</Filter>
      <MaxScaleDenominator>750000</MaxScaleDenominator>
      <LineSymbolizer stroke="#838c86" stroke-width="7" stroke-opacity="0.1"/></Rule>
    <Rule>
      <Filter>[admin_level]='3'</Filter>
      <MaxScaleDenominator>750000</MaxScaleDenominator>
      <LineSymbolizer stroke="#838c86" stroke-width="6" stroke-dasharray="4,2" stroke-opacity="0.1"/></Rule>
    <Rule>
      <Filter>[admin_level]='4'</Filter>
      <MaxScaleDenominator>3000000</MaxScaleDenominator>
      <MinScaleDenominator>400000</MinScaleDenominator>
      <LineSymbolizer stroke="#838c86" stroke-width="2" stroke-dasharray="4,3" stroke-opacity="0.2"/></Rule>
    <Rule>
      <Filter>[admin_level]='4'</Filter>
      <MaxScaleDenominator>400000</MaxScaleDenominator>
      <LineSymbolizer stroke="#838c86" stroke-width="3" stroke-dasharray="4,3" stroke-opacity="0.2"/></Rule>
</Style>
<Style name="admin-01234">
    <Rule>
      <Filter>[admin_level]='2' or [admin_level]='3'</Filter>
      <MaxScaleDenominator>50000000</MaxScaleDenominator>
      <MinScaleDenominator>6500000</MinScaleDenominator>
      <LineSymbolizer stroke="#50705a" stroke-width="0.6" stroke-opacity="0.2"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='2' or [admin_level]='3'</Filter>
      <MaxScaleDenominator>6500000</MaxScaleDenominator>
      <MinScaleDenominator>750000</MinScaleDenominator>
      <LineSymbolizer stroke="#3d6f4c" stroke-width="2" stroke-opacity="0.2"/>
    </Rule>
   <Rule>
      <Filter>[admin_level]='2'</Filter>
      <MaxScaleDenominator>750000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="6" stroke-opacity="0.1"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='3'</Filter>
      <MaxScaleDenominator>750000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="5" stroke-dasharray="4,2" stroke-opacity="0.1"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='4'</Filter>
      <MaxScaleDenominator>50000000</MaxScaleDenominator>
      <MinScaleDenominator>6500000</MinScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="0.6" stroke-dasharray="4,3" stroke-opacity="0.2"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='4'</Filter>
      <MaxScaleDenominator>6500000</MaxScaleDenominator>
      <MinScaleDenominator>400000</MinScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="1" stroke-dasharray="4,3" stroke-opacity="0.2"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='4'</Filter>
      <MaxScaleDenominator>400000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="3" stroke-dasharray="4,3" stroke-opacity="0.2"/>
    </Rule>
</Style>
<Style name="admin-5678">
    <Rule>
      <Filter>[admin_level]='5'</Filter>
      <MaxScaleDenominator>400000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="2" stroke-dasharray="6,3,2,3,2,3" stroke-opacity="0.3"/>
    </Rule>
    <Rule>
      <Filter>[admin_level]='6'</Filter>
      <MaxScaleDenominator>400000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="2" stroke-dasharray="6,3,2,3" stroke-opacity="0.3"/>
    </Rule>
</Style>
<Style name="admin-other">
    <Rule>
      <Filter>[admin_level]='10' or [admin_level]='9'</Filter>
      <MaxScaleDenominator>100000</MaxScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="2" stroke-dasharray="2,3" stroke-opacity="0.3"/>
    </Rule>
   <Rule>
      <Filter>not [admin_level] != ''</Filter>
      <MaxScaleDenominator>1500000</MaxScaleDenominator>
      <MinScaleDenominator>200000</MinScaleDenominator>
      <LineSymbolizer stroke="#328c4e" stroke-width="1" stroke-opacity="0.2"/>
    </Rule>
</Style>

und Layers:

<Layer name="admin-01234" 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>admin-01234</StyleName>
    <StyleName>admin-01234-casing</StyleName>
    <Datasource>
      <Parameter name="table">
      (select way,admin_level
       from planet_roads
       where "boundary"='administrative'
         and admin_level in ('0','1','2','3','4')
       ) as admin</Parameter>
      <!--
Settings for your postgres setup.

Note: feel free to leave password, host, port, or use blank
-->

<Parameter name="type">postgis</Parameter>
<Parameter name="password"/>
<Parameter name="host"/>
<Parameter name="port"/>
<Parameter name="user"/>
<Parameter name="dbname">mymapnik</Parameter>
<!-- this should be 'false' if you are manually providing the 'extent' -->
<Parameter name="estimate_extent">false</Parameter>
<!-- manually provided extent in epsg 900913 for whole globe -->
<!-- providing this speeds up Mapnik database queries -->
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>

    </Datasource>
</Layer>
<Layer name="admin-5678" 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>admin-5678</StyleName>
    <Datasource>
      <Parameter name="table">
      (select way,admin_level
       from planet_roads
       where "boundary"='administrative'
         and admin_level in ('5','6','7','8')
       ) as admin</Parameter>
      <!--
Settings for your postgres setup.

Note: feel free to leave password, host, port, or use blank
-->

<Parameter name="type">postgis</Parameter>
<Parameter name="password"/>
<Parameter name="host"/>
<Parameter name="port"/>
<Parameter name="user"/>
<Parameter name="dbname">mymapnik</Parameter>
<!-- this should be 'false' if you are manually providing the 'extent' -->
<Parameter name="estimate_extent">false</Parameter>
<!-- manually provided extent in epsg 900913 for whole globe -->
<!-- providing this speeds up Mapnik database queries -->
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>

    </Datasource>
</Layer>
<Layer name="admin-other" 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>admin-other</StyleName>
    <Datasource>
      <Parameter name="table">
      (select way,admin_level
       from planet_roads
       where "boundary"='administrative'
         and (admin_level is null or admin_level not in ('0','1','2','3','4','5','6','7','8'))
       ) as admin</Parameter>
      <!--
Settings for your postgres setup.

Note: feel free to leave password, host, port, or use blank
-->

<Parameter name="type">postgis</Parameter>
<Parameter name="password"/>
<Parameter name="host"/>
<Parameter name="port"/>
<Parameter name="user"/>
<Parameter name="dbname">mymapnik</Parameter>
<!-- this should be 'false' if you are manually providing the 'extent' -->
<Parameter name="estimate_extent">false</Parameter>
<!-- manually provided extent in epsg 900913 for whole globe -->
<!-- providing this speeds up Mapnik database queries -->
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>

    </Datasource>
</Layer>

Da ich diese Grenzen aber nicht brauche, habe ich diese layer entfernt/auskommentiert.
Dies hat zur Folge, dass zwar die Linien nicht mehr gerendert werden, die Beschriftung der Linien aber bleibt.

In der osm-de.xml finde ich aber keine weitere Passage mit "admin" o.ä., was mir evtl. einen Hinweis darauf geben könnte, wie diese Beschriftung gerendert wird.

Hat vielleicht einer eine Idee, wo ich diese Beschriftung finde, bzw. wie ich diese los werden kann?

Google konnte mir da bis jetzt nicht weiter helfen.

Vielen Dank schonmal!

Gruß
Andreas

Offline

#2 2013-03-10 16:49:35

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Ahoi,

keine Ideen, Vermutungen, ...?

Gruß
Andreas

Offline

#3 2013-03-10 17:25:42

TEL0000
Moderator
From: Berlin
Registered: 2008-06-11
Posts: 968

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

In der osm-de.xml gibt es noch einen Style namens boundary. Vielleicht hat der ja was damit zu tun.

Offline

#4 2013-03-10 18:28:04

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Schade, das war's leider nicht.

Habe alles, was mit admin und boundary/boundaries zu tun hat, rausgeschmissen (styles und layers), aber die Namen der Kreise/Gemeinden werden weiterhin gerendert...

Die Namen erscheinen - wie vorher auch - ab Zoomlevel 15.

Andreas

Offline

#5 2013-03-10 18:40:23

tunnelbauer
Member
Registered: 2012-01-13
Posts: 1,011
Website

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Du bindest aber nicht eventuell die grenzen.xml irgendwie irgendwo ein?


Grüße
Thomas

Offline

#6 2013-03-10 19:08:59

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Nee, diese "admin-Styles", die in der grenzen.xml stehen, tauchen in meiner osm-de.xml nicht auf.
Die ähnlichen admin-Sachen, die bei mir drinstehen, habe ich ja bereits rausgelöscht.

Zu ner Beschriftung, die der aus der grenzen.xml ähnelt, hab ich nur das hier noch in meiner osm-de.xml gefunden:

<Style name="area-text">						<!--Beschriftung Parks, ....-->		
    <Rule>
      <Filter>[way_area] &gt;= 150000</Filter>
      <MaxScaleDenominator>50000</MaxScaleDenominator>
      <TextSymbolizer size="10" fill="#4c8056" fontset-name="book-fonts" halo-radius="1" wrap-width="20" placement="interior">[name]</TextSymbolizer>
    </Rule>
    <Rule>
      <Filter>[way_area] &gt;= 80000 and [way_area] &lt; 150000</Filter>
      <MaxScaleDenominator>25000</MaxScaleDenominator>
      <TextSymbolizer size="10" fill="#4c8056" fontset-name="book-fonts" halo-radius="1" wrap-width="20" placement="interior">[name]</TextSymbolizer>
    </Rule>
    <Rule>
      <Filter>[way_area] &gt;= 20000 and [way_area] &lt; 80000</Filter>
      <MaxScaleDenominator>12500</MaxScaleDenominator>
      <TextSymbolizer size="10" fill="#4c8056" fontset-name="book-fonts" halo-radius="1" wrap-width="20" placement="interior">[name]</TextSymbolizer>
    </Rule>
    <Rule>
      <Filter>[way_area] &lt; 20000</Filter>
      <MaxScaleDenominator>5000</MaxScaleDenominator>
      <TextSymbolizer size="10" fill="#4c8056" fontset-name="book-fonts" halo-radius="1" wrap-width="20" placement="interior">[name]</TextSymbolizer>
    </Rule>
</Style>
<Layer name="area-text" 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>area-text</StyleName>
    <Datasource>
      <Parameter name="table">
      (select way,way_area,name
       from planet_polygon
       where name is not null
         and (waterway is null or waterway != 'riverbank')
         and place is null
       order by way_area desc
      ) as text
      </Parameter>
      ...

Edit: Aber es bringt auch nix, wenn ich das rauslösche...

Gruß
Andreas

Last edited by Vize11 (2013-03-10 19:12:47)

Offline

#7 2013-03-12 16:55:28

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Ahoi,

keine Ideen mehr?

Hab mich schon fast wund gegoogelt... wink
Ohne Erfolg...was das Finden von Lösungen/Hinweisen angeht...

Oder kann man die Anzeige/das Rendern der Grenzbezeichnungen evtl. gar nicht unterbinden?

Gruß
Andreas

Offline

#8 2013-03-12 17:09:20

!i!
Member
Registered: 2009-11-28
Posts: 3,313
Website

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Vielleicht sind auf help.openstreetmap.org bzw. den Mailinglisten mehr Leute, die mit Server-Technik spielen?


privater Account von KVLA-HRO-Mei

Offline

#9 2013-03-12 17:10:03

Oli-Wan
Member
From: NRW
Registered: 2010-09-14
Posts: 2,814

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Daß Mapnik gern Namen von Objekten in die Karte schreibt, die ansonsten gar nicht gerendert werden, ist auch in OSM-Mapnik immer wieder zu beobachten. Hast Du es schon mal in der Google-Gruppe zu Mapnik versucht? Da ist zwar nicht viel los, aber vielleicht weiß doch jemand dort Rat. Falls Du etwas erfährst, laß es uns wissen.


No animals were harmed in the writing of this posting.

Offline

#10 2013-03-16 12:16:54

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Ahoi,

so, hier mal das (Zwischen)Fazit.

Da ich mir sowieso mal ne eigene osm.xml basteln wollte, bin ich nun selber auf die Lösung gekommen.

Kurz zusammengefasst, die Linien der Kreis-/Bezirksgrenzen werden über &layer-admin (als Import) oder die entsprechenden layer in der osm.xml gerendert.
Will man diese nicht haben, löscht man diese einfach.

Die Beschriftung der Grenzen ist etwas versteckt. Und zwar im layer "roads-text-name". Dort muss man unter <Parameter> folgende Zeile ergänzen:

and boundary IS NULL

um das Rendern der Bezeichnung zu verhindern.

Das Ganze sieht dann so aus:

<Layer name="roads-text-name" status="on" srs="&osm2pgsql_projection;">
     <StyleName>roads-text-name</StyleName>
     <Datasource>
      <Parameter name="table">
      (select way,highway,name
       from &prefix;_line
       where waterway IS NULL
         and leisure IS NULL
         and landuse IS NULL
         and boundary IS NULL	
         and name is not null
      ) as roads
      </Parameter>
      &datasource-settings;
    </Datasource>
</Layer>

Gruß
Andeas

Offline

#11 2013-03-18 11:28:39

GeorgFausB
Member
From: Probstei, Schleswig-Holstein
Registered: 2008-10-14
Posts: 1,916

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Moin,

Vize11 wrote:

Die Beschriftung der Grenzen ist etwas versteckt. Und zwar im layer "roads-text-name".

irgendwe logisch ... hat ja mal als OpenStreetMap angefangen ... wer erwartet da schon andere Linien außer Straßen ... tongue roll

Vielen Dank für den informellen Tip!

Gruß
Georg

Offline

#12 2013-03-19 10:34:59

Vize11
Member
Registered: 2013-02-26
Posts: 33

Re: Mapnik: Grenzen in Deutschland (Kreise, Bezirke, etc.)

Hallo Georg,

gern geschehn...

alternativ zu

and boundary IS NULL

kann man auch

and boundary not in ('administrative')

einfügen, dann werden sogar Naturpark-Grenzen etc. nicht mehr gerendert - zumindest in meiner Gegend.
Wobei ich nicht gedacht hätte, dass solche Grenzen zu 'administrative' gehören?!?

Gruß
Andreas

Offline

Board footer

Powered by FluxBB