回答:
浸透ドキュメントについては、コマンドオプションが表示されます。
--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 Lat / Long用であり、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のヘルプページから取り
ました。上記と同様に設計されたウェイテーブルに関する2番目のクエリ(ただしST_Dimension()= 1を使用)がウェイを取得するはずです。
HTH、ミカ
ここにあなたの質問に似たトピックがあります ...
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.Another情報ここと交差する交差点について: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;
私はそれがあなたを助けることを願っています...