[Mapnik-de] Lösung für ab geschnittene ShieldSymbolizer und Frage: "in welchem Land bin ich"

Daniel Pfeilsticker Daniel.Pfeilsticker at intradesys.com
Mo Aug 4 17:38:33 CEST 2014


Hallo Sven,


Am 04.08.14 15:58, schrieb Sven Geggus:
> In article <53DF5381.702 at intradesys.com> you wrote:
>
>> <ShieldSymbolizer ... minimum-padding="31"/>
>> 31 = hälfte der (maximalen) Breite von 62px.
>> https://github.com/mapnik/mapnik/wiki/TextSymbolizer
>>
>> Wenn ich das richtig sehe ist minimum-padding mit mapnik 2.0 ein
>> geführt, dürfte also kein Problem sein.
> Jepp, der deutsche Stil benötigt ohnehin mindestens Mapnik 2.1
>
> Ich sollte also im deutschen Stil alle ShieldSymbolizer um diese Option
> ergänzen?

Ja, war das erste was dem Kunden innerhalb von 5 Sekunden auf gefallen ist:
"Da sind ja Schilder ab geschnitten" und "Warum sind da so viele Schilder":
http://www.openstreetmap.de/karte.html?zoom=16&lat=50.74617&lon=7.07627&layers=B000TT

"minimum-padding" hat auch/aber den Nebeneffekt, dass es merklich 
weniger Beschilderungen werden, weswegen ich spacing für Autobahnen für 
zoomlevel 7-12 von 750 auf 550 verkleinert habe.



Und eben kam noch: "Warum haben den Landesstraßen das gelbe 
Bundesstraßen-Symbol":

http://www.openstreetmap.de/karte.html?zoom=12&lat=50.7639&lon=7.00444&layers=B000

Was ich dann so gelöst habe:
Würde den Stil vielleicht für DE hübscher machen, dafür gäbe es 
außerhalb DE dann nur noch die weißen "L-Schilder".
So also eher nicht für openstreetmap.de zu gebrauchen, wenn man nicht 
mehr Liebe in diesen RegEx steckt:

Beginnt mit B:

<Filter>...[highway] = 'primary' ... and [ref].match('^B.*')</Filter>
         <ShieldSymbolizer ... file="&symbols;/B[length].png" .../>

Beginnt nicht mit B:

<Filter>... [highway] = 'primary' ... and [ref].match('^[^B].*')</Filter>
         <ShieldSymbolizer ... file="&symbols;/L[length].png" .../>




Wow, herzlichen Dank für die schnelle und ausführliche folgende Antwort:

>> Und hier die Gegenfrage, die sich nicht aus dem MapQuest-Mapnik-Style
>> auf github beantwortet:
>>
>> http://www.mapquest.com/ und auch https://www.google.de/maps/ ändern
>> Ihren Style an Ländergrenzen.
>> Sprich andere Symbole für Autobahnen, Landstraßen u.s.w.
>>
>> Habe ich mit mapnik irgend eine Möglichkeit zu wissen welches Land ich
>> mich gerade befinde?
> Nein!
>
> AFAIR ist das im Mapquest Rendering-Stack eingebaut. Jochen weiss das
> besser, der hat den als einizger nicht Mapquest Mitarbeiter schon verwendet,
> der ist aber glaub ich nicht hier auf der Liste.

Ne, ich bleibe mal schön bei mapnik. Aufwand und "google-bar-keit" von 
Problemen sprechen klar für mapnik:-)


> Was sicher geht, aber den Stil massiv verkompliziert ist ein Postgis query,
> der beim selektieren von Daten schaut in welchem Land ein Punkt ist. Das
> sollte man der Übersichtlichkeit halber aber in ein view verpacken.
>
> Wir hatten sowas mal für Ländersprezifische Transliteration überlegt um
> chinesische Transliteration in Japan zu verhindern:
>
> osm=> select country_code,ST_Area(geometry) from country_osm_grid where st_contains(geometry,ST_GeomFromText('POINT(-58.25038 -34.18197)',4326)) limit 1;
>   country_code |      st_area
> --------------+--------------------
>   ar           | 0.0470575965335851
> (1 Zeile)
>
> Konkret also ein view, der eine Pseudospalte country_code enthält.
> country_osm_grid stammt aus nominatim:
>
> https://github.com/twain47/Nominatim/blob/master/data/country_osm_grid.sql

Ja, hört sich gut an. Mal sehen, wann ich Zeit finde, das zu testen.
Und ich bin gespannt, wie viel Performance das kostet...


> Ich selbst finde ja länderspezifisches Renderingnur bedingt sinnvoll.
>
> Warum sollte ich in einem anderen Land auf mein gewohntes Kartenbild
> verzichten wollen und stattdessen eines benutzen, das ich nicht verstehe,
> nur weil es dort üblich ist?
> Gruss
> Sven

In diesem Fall sind es mehrere Länder, die Ihre eigene Karte bekommen 
sollen (und im Prinzip auch nur die Karte für ihr Land).
Die Frage ist halt ob ich für jedes Land ein passendes "Rechteck" mit 
eigenem Stil rendere.
Oder ich alles in einem Rutsch durch rendern kann.

So wie Japaner und Chinesen jeweils nichts vom jeweils anderen in 
"ihrer" Karte sehen wollen...


Wenn das ganze in 1-2 Monaten online geht, schicke ich mal den Link.


Daniel

-- 
Mit herzlichem Gruß / Kind Regards
Daniel Pfeilsticker

InTradeSys Limited - Zweigniederlassung Deutschland
Dillenburger Str. 75
D - 51105 Köln
T: +49.221.356622.28
F: +49.221.356622.22
HRB 53992 - USt.-Id.: DE239780984 - Geschäftsführer: Andreas Oesterhelt