2010-08-03 16 views
0

Je souhaite spécifier une boîte (c'est-à-dire 2 points) et sélectionner toutes les lignes qui se trouvent à l'intérieur ou à l'intersection de la boîte.PostGIS: Recherche de LineStrings qui chevauchent une case

SELECT * FROM pub_trail_segment WHERE st_force_2d(pub_trail_segment.geometry) && ST_SetSRID(ST_MakeBox2D(ST_GeomFromEWKT('SRID=4326;POINT(48.25077560316286 -124.46710205078124)'), ST_GeomFromEWKT('SRID=4326;POINT(50.4743709029765 -120.73239135742186)')), 4326); 

Cependant, il retourne 0 lignes. J'ai essayé d'agrandir la taille de la boîte et de forcer la colonne de géométrie en 2D mais je ne peux pas voir ce qui me manque.

Les données de test suit - (format DBTestCase, mais vous voyez l'idée):

<pub_trail_segment id="1" pub_trail_id="1" geometry="SRID=4326;LINESTRING(-123.258275 7 49.3607281 123.666748, -123.2583172 49.3607195 120.302124)"/> 
<pub_trail_segment id="2" pub_trail_id="3" geometry="SRID=4326;LINESTRING(-123.2582757 49.3607281 123.666748, -123.2583172 49.3607195 120.302124, -123.3583172 49.3607195 120.402124)"/> 
<pub_trail_segment id="3" pub_trail_id="1" geometry="SRID=4326;LINESTRING(-123.3582757 49.4607281 123.666748, -123.3583172 49.4607195 120.302124)"/> 
<pub_trail_segment id="4" pub_trail_id="4" geometry="SRID=4326;LINESTRING(-123.3582757 50.4607281 123.666748, -123.3583172 50.4607195 120.302124)"/> 

Merci pour votre aide!

+0

Vous pouvez trouver d'autres réponses d'experts aux questions relatives aux SIG sur le site dédié http://gis.stackexchange.com – amercader

Répondre

0

Je l'ai élaboré. J'avais la latitude et la longitude dans le mauvais sens.