[FOSSGIS-Talk] QGIS - MySQL-Tabelle als Punktlayer bearbeiten

Lars Lingner lars at lingner.eu
Di Nov 20 22:15:02 CET 2012


Hallo Namensvetter,

in Mysql gibt es auch Geometriedatentypen, z.B. Point
Wie die genau aussehen, kann ich aus dem Kopf jetzt leider nichts sagen.
Ich nehme an das die Daten letztendlich auch als WKB gespeichert werden.

Um so ein Feld/Spalte zu befüllen, müssen aber die Daten irgendwie
eingespeist werden. Das geschieht durch die Funktion GeometryFromText.
Als Argument wird eine Zeichenkette erzeugt, die dem WKT-Ausdruck
entspricht, z.B. Point(52.1 11.4)

Zur Hilfe kommt hier die Funktion zum Textverketten CONCAT. Diese nimmt
die Teilzeichenketten "Point(", "52.1", " ", "11.4)" und verbindet diese
zu einem Ganzen: "Point(52.1 11.4)"

Es kann sein, das ich die Syntax nicht 100%ig richtig habe, in der
Onlinedoku gibt es aber Beispiele.

Ok, also hat man jetzt einen WKT-Ausdruck und GeometryFromText macht
daraus einen Geometriedatentyp. Dieser wird dan in das Feld eingetragen.

QGis zeigt alle Objekte an, es sei denn man filtert diese. Das kann man
beim Hinzufügen als Layer angeben. Hierzu kann man einen Ausdruck für
die WHERE-Klausel angeben, z.b. LIMIT 1000. Dann werden nur die ersten
1000 Objekte aus der DB geholt.

Alternativ könntest Du auch einen View in der DB erzeugen, der nur einen
Auszug aus deiner 200000er-Tabelle liefert. Dieser kann dann in QGIS
eingebunden werden, ohne das ein zusätzlicher Filter definiert wird.

Ich hoffe das hilft dir weiter...?


Viele Grüße

Lars