| From: | Andrew Hunter <ahunter(at)ucalgary(dot)ca> |
|---|---|
| To: | "Romain Billoir" <billoirr(at)gmail(dot)com> |
| Cc: | Andrew Hunter <ahunter(at)ucalgary(dot)ca>, PostgreSQL General <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: "IN" in a geometric database using data type "point" |
| Date: | 2010-09-26 12:22:12 |
| Message-ID: | 71744C2E-444A-433D-93F7-769EDDF9E73D@ucalgary.ca |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Hi Romain,
Assuming you have PostGIS installed and position is defined as a point or multpoint ADT then you could use the ST_Intersect operator
SELECT *
FROM map
WHERE ST_Intersects(position, 'MULTIPOINT(-1 -1,1 -1,1 1,-1 1)');
Regards
Andrew
On 2010-09-26, at 12:27 PM, Romain Billoir wrote:
> Hi, i'm trying to request a database using data type "point" using keyword "IN" with a list of point generated by PHP, like this:
> 'SELECT * FROM map WHERE position IN ((point(-1,-1), (point(1,-1), point(1,1), point(-1,1))'
> but this request returns me an error: operator doesn't exist point = point.
> so i tried to use a path unstead of list of point like this:
> 'SELECT * FROM map WHERE position <@ path '(point(-1,-1), (point(1,-1), point(1,1), point(-1,1))'
> but this request returns me the point 0,0???
>
> Is anybody have a suggestions?
>
> Thanks.
Andrew Hunter PEng RPSurv PhD
Assistant Professor
Department of Geomatics Engineering
Schulich School of Engineering
University of Calgary
T: +403.220.7377
F: +403.284.1980
E: ahunter (at) ucalgary (dot) ca
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2010-09-26 13:05:44 | Re: psql copy command - 1 char limitation on delimiter |
| Previous Message | Peter Eisentraut | 2010-09-26 11:57:50 | Re: ECPG - Some errno definitions don't match to the manual |