Answers:
对于渗透文档,我看到命令选项:
--bounding-box top=49.5138 left=10.9351 bottom=49.3866 right=11.201
对于PostGIS,您可以使用ST_MakeEnvelope(left,bottom,right,top,srid)来构建一个边界框,然后使用&&
边界框运算符来查找边界框相交的位置:
SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(10.9351, 49.3866, 11.201, 49.5138, 4326);
SRID 4326适用于WGS84纬度/经度,仅PostGIS 1.5才需要;以后的版本可以省略。
我认为应该是这样的:PostGIS中的边界框是由
ST_GeomFromText('POLYGON((ulx uly, urx ury, llx llr, lrx lry, ulx uly))', <srid>)
该查询将对子查询使用ST_Intersection。
SELECT bbox_nodes.id, bbox_nodes.tag, nodes_geom
FROM (SELECT nodes.id, nodes.tag,
ST_Intersection(nodes.the_geom,
ST_GeomFromText('POLYGON((ulx uly, urx ury, llx llr, lrx lry, ulx uly))', <srid> )).geom AS nodes_geom
FROM nodes
WHERE ST_Intersects(nodes.the_geom,
ST_GeomFromText('POLYGON((ulx uly, urx ury, llx llr, lrx lry, ulx uly))', <srid> )) AS bbox_nodes
WHERE ST_Dimension(bbox_nodes.nodes_geom)=0;
我或多或少从PostGIS帮助页面中获取了此信息。在Ways
表中,与上面类似(但使用ST_Dimension()= 1)设计的第二个查询应该获得该方法。
HTH,Micha
有一个话题在这里它类似于您的问题在这里 ...
ST_Intersection —(T)返回表示geomA和geomB共享部分的几何。地理实现将转换为几何以进行交点,然后转换回WGS84。
1.您还可以在此处获得有关几何构造函数的一些信息。
SELECT ST_AsText(ST_Intersection(
ST_Buffer('POINT(0 0)', 2),
ST_Buffer('POINT(3 0)', 2)
));
2. 此处有关交集相交的其他信息:PostGIS-ST_Intersects,ST_Intersection ...
SELECT b.the_geom As bgeom, p.the_geom As pgeom,
ST_Intersection(b.the_geom, p.the_geom) As intersect_bp
FROM buildings b INNER JOIN parcels p ON ST_Intersection(b,p)
WHERE ST_Overlaps(b.the_geom, p.the_geom)
LIMIT 1;
我希望它可以帮助您...