Ich stelle mich vor und habe direkt mal eine Hmm .. Offtopic Frage :D

Moin :;-),

mein Name ist Markus und ich beschäftige mich mittlerweile beruflich mit OpenLayers.

Anscheinend bin ich aber zu blöd ein Deutschsprachiges Forum dafür zu finden.

Hier gibt es leider nur Themen zu OSM …

Hat vielleicht einer von euch einen Link ?

Ich bedanke mich schon mal.

Hallo und willkommen im Forum!

Hast du gesehen, dass es auch ein Unterforum “Users:Germany” gibt? Dort sind wahrscheinlich mehr deutschsprachige Nutzer unterwegs als in “General chat”.

Ich selber kenne kein deutschsprachiges Forum speziell für OpenLayers, kann dir da also leider nicht weiterhelfen.

Hey Danke für das verschieben :-).

Werde meine Fragen nun hier stellen.

Auch von mir willkommen.

Einige von uns basteln auch mit Openlayers, von daher erklär einfach mal was du machen willst und woran es bei dir gerade scheitert.

Super :slight_smile:

Die Frage die ich eigentlich stellen wollte hat sich inzwischen erledigt :slight_smile:
Habe es selbst raus bekommen.

Habe mir auch schon das Deutsche OpenLayers Buch bestellt bei Amazon dann wird es denke ich noch einfacher.

Allerdings habe ich jetzt noch ein paar Grundsätzliche Fragen.

Zu meinem System !

Ich habe einen Server auf dem läuft der

  • GeoServer
  • PostgreSQL DB mit PostGis (hier habe ich eigene Kartendaten hochgeladen)
  • zum Anzeigen benutze ich Openlayers

So ich komme jetzt an einen Punkt wo mir die Datenbank 500 Polygone liefert die ich dann anzeigen muss je nach Zoomstufe.
Das ist auch alles kein Problem.

Derzeit hole ich mir die Polygone as WKT von der PostGis DB und füge die über OpenLayers einem neuen Layer auf der Karten hinzu.

Mal ein kleiner Einblick :slight_smile:

SQL Abfrage

 commandText = "SELECT ASTEXT(the_geom) FROM \"PLZ5_region_4xxxx\" WHERE plz = '"+ zipcode +"'";

OpenLayers JS

 
var wkt_format = new OpenLayers.Format.WKT();
var vectorFeature = wkt_format.read(response);
vectorLayer.addFeatures(vectorFeature);

Vector Layer ist in dem Fall mein am Anfang erzeugter leerer Layer und vectorFeature ist das Polygon im WKT Format.

So meine Frage dazu …

Es dauert meiner Meinung nach ewig(!) 100 Polygone dem neuen Layer hinzuzufügen.

Liegt das daran weil ich das einzeln mache ?
Es gibt ja verschiedene Möglichkeiten…

KML Datei…
GeoRSS…
etc…

Kann es auch an der PostGis DB liegen ? Wäre es schneller wenn ich auf eine MSSQL 2008 DB umsteigen würde ?
Für den GeoServer gibt es da auch Plugins habe ich gesehen.

Kann mir da jemand weiterhelfen ?
Habe auch noch nirgendwo eine “PErformace” Übersicht gefunden oder eine Übersicht ab welcher “Objekt” Anzahl man welches verfahren nutzt.

Vielen Dank für eure Aufmerksamkeit.
Griß,

Markus

Ich denke das ist ein generelles problem bei deinem Konzept und kein technisches. Wenn du 400 polys in einem browser selb per JS rendern lässt, ist das zwangsläufig langsam. Ausserdem kommen die Suchzeit und der Transport ja auch noch dzu.
ALternative wäre vielleicht das über den Geoserver rendern zu lassen und perm WMS oder TMS auszuliefern. Einfacher wäre es, erstma die Anzahl der Polys zu reduzieren.

Ok … die Anzahl könnte ich noch reduzieren…

allerdings werde ich meistens so um die 100 Polygone bzw. PLZ haben die ich anzeigen muss …

Wie Funktioniert das denn mit dem GEOServer ?

Ich habe mir von Anfang an schon gedacht das es doch irgendwie möglich sein muss das mir der GeoServer die PLZ die ich ihm sage einfärbt.

Weil er hat die ja eh …

Kannst du mir da vllt. ein Beispiel nennen ?

Meine Vorstellung wäre:

  1. Benutzer klickt auf 50km Umkreis
  2. Die DB sucht die passenden PLZs raus
  3. der GeoServer färbt diese ein
  4. und liefert die Tiles an den Benutzer

Ist das so realistisch ?

Könnte man dann immer noch per Klick einzelne PLZ de-/ bzw. selektieren ?

Jedes Polygon einzeln abzufragen finde ich schon nicht ganz so ideal.

Mit dem GeoServer gibt es zwei Möglichkeiten - ich würde es erst mal mit WFS versuchen, um die Polygone wenigstens auf einmal zu laden:

a) WFS (Web Feature Service)

Liefert die Vektordaten an den Client, mit der BBOX Strategy nur für den aktuell sichtbaren Bereich.
OpenLayers WFS Beispiel (ohne Interaktion).

b) WMS (Web Map Service)

Rendert die Daten auf Basis eines SLD Karten-Stils auf dem Server und liefert ein Bild oder Kacheln. Selektion und Info-Popup zu einem Feature geht per GetFeature Request.
OpenLayers WMS Beispiel mit GetFeature.

Doku zum GeoServer z.B. User Manual und OpenGeo Workshop.

Danke für die Antwort … ich habe mir den Teil in der Doku mal genauer durchgelesen und gesehen das man einen Layer im Geoserver auch aus einer MSSQL SP befüllen kann.

Dieser kann ich über die URL eine GUID mitgeben und kann darüber in meiner MSSQL DB die Gebiete identifizieren und “dynamisch” anzeigen lassen.

Super !

Da sollte ich ja dann auch 500 Polygone liefern lassen können … da hat ja dann nur der GeoServer Arbeit und nicht der Client … → Richtig ?

Jetzt habe ich noch eine Frage :slight_smile:
Bevor ich mich durch viele SLD Dokus lese … kann ich dem SLD sagen das alle Polygone die im Feld “xy” eine 1 stehen haben einen andere Hintergrund Farbe haben ?

Ich bin echt begeistert … von diesem Forum :slight_smile: schon viele gute Antworten in kurzer Zeit ! Danke !

Bei deinem OpenLayers Buch ist ein einfaches Beispiel dabei: http://openlayers-buch.de/sld/country.sld und sicherlich lässt sich das auch mit Bedingungen abwandeln. Leider habe ich mit SLD bisher keine Erfahrungen, ich habe das clientseitig in OL immer mit einer Stylemap gemacht. Beispiel: www.on-i.de/map/