You are not logged in.
- Topics: Active | Unanswered
Announcement
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] >= 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] >= 80000 and [way_area] < 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] >= 20000 and [way_area] < 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] < 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... ![]()
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 NULLum 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,
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 ...
![]()
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 NULLkann 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