Punkte im Polygon

Hallo zusammen,
ich gestehe, ich bin ziemlich verzweifelt :frowning:
Seit gestern muss ich mich mit PostGis beschäftigen (als ein winziger teil meiner Diplomarbeit).

Also ich hab folgendes Problem:
ich habe eine Tabelle mit verschiedenen Punkten angelegt[INDENT]CREATE TABLE “punkte” (gid serial PRIMARY KEY,
“onr” varchar(8),
“oar” varchar(4),
“objektkoor” varchar(20),
“oid_” int4,
“fol” varchar(3),
“os” varchar(4),
“bezeichnun” varchar(100));

[/INDENT]Anschließend die Geometrie-Spalte
[INDENT]SELECT AddGeometryColumn(’’,‘punkte’,‘the_geom’,‘31469’,‘MULTIPOINT’,2);
[/INDENT]und dann jede menge punkte in die Tabelle eingelesen.
nun würde ich gern anhand eines Polygons die Zahl der im Polygon liegenden Punkte ermitteln.
Funktionieren sollte das mit[INDENT]SELECT count(*) FROM punkte
WHERE
Contains(‘POLYGON((0 0, 0 45, 45 45, 45 0, 0 0))’, the_geom);

[/INDENT]Das führt aber leider zu folgender Fehlermeldung[INDENT]ERROR: Operation on mixed SRID geometries
[/INDENT]Wie schon gesagt, ich bin total verzweifelt. Sehe ich den Wald vor lauter Bäumen nicht?

da musst du die SRID neu definieren. Damit ihr im selben “maßstab” seid. Schau dir mal “SetSrid” an, dann sollte es klappen. Alternativ gibt es das auch als Parameter meine ich. Aber da sind hier eher die Pros gefragt. :slight_smile:

danke ttwhy!

hat sich doch jemand erbarmt mir zu helfen :slight_smile:

leider komme ich so nicht weiter. mit SetSRID (geometry, integer) kann ich freilich die SRID neu machen aber leider hab ich keine Ahnung, wie ich da das Polygon hineinbekomme. Bis jetzt produziere ich nur Syntax Error.

Oh man ich hab wirklich keine Ahnung!!

ich glaub du solltest das am besten anders probieren.

Intuitiv (und damit total unglaubwürdig :wink: ) würde ich deine abfrage mal so probieren :
POLYGON((0 0, 0 45, 45 45, 45 0, 0 0), 31469)

Damit du die SRID des Polygones setzt. Ob das natürlich richtig ist -> REINE spekulation :wink:

alternativ mit der syntax von (GEOMETRYFROMTEXT(‘POLYGON(…)’, SRID) sollte es auf jedenfall gehen. Sieht zwar scheisse aus, aber was will man machen.

Schreib mal obs geholfen hat.

Wenn es wie beschrieben nicht klappen sollte, dann probiermal:
SetSRID(GEOMETRYFROMTEXT(‘POLYGON(…)’), 31469)

Das sollte dann eigentlich funktionieren.