Openlayers: Polygon invertiert darstellen

Hallo!

Ich habe ein Polygon (Gemeindegrenze). Dieses in OSM darzustellen ist mir schon mal gelungen [1]. Nun möchte ich aber gerne die Schattierung umkehren, also alles was außerhalb dieses Polygons liegt einfärben und alles was innerhalb des Polygons liegt soll keine Schattierung haben. Ist das möglich?

Christian

[1] http://osm.duschmarke.de/test/schattierung.html

Siehe Beispiel (oder mit Schattierung) und entsprechenden Faden Frage bezüglicher Map + Layer und reiner Stadtdarstellung.

Gruß,
Norbert

Oder auch hier:


SELECT  ST_AsGeoJSON(ST_Difference(ST_SetSRID(ST_MakeBox2D(ST_Point(-0.51059281249997,46.229064252099),
                                                           ST_Point(26.9991728125,55.319613469685)),4326),
                                   (select buffer_geom from relations where id in(2463632))
                                  ),
                   6) as shadow;

Ist “ganz einfach”, wenn man die Daten hat. Hier wird die Differenz zwischen der aktuellen sichtbaren Fläche (st_makebox2d(…) ) und der Geometrie von Dach+ (relation 2463632) berechnet.
OpenLayers schickt die BBOX mit OpenLayers.Strategie.BBOX zum Server, der macht ein wenig PostGIS, konvertiert nach GeoJSON und OL zeigt das halt an.

Gruss
walter

p.s. in einer mit osm2pgsql erzeugten DB sind die Flächen der Relationen ja als Ways mit der negativen ID der Relation drin. Das müsste man anpassen, wenn man es mal damit ausprobieren möchte.