OpenLayers使用Line选择功能

时间:2014-12-01 11:24:48

标签: openlayers postgis

我正在尝试使用 DrawFeature 在图层上选择要素(道路和街道)。我正在使用Polygon和Line绘制选项。我知道如何从这个链接中选择多边形内的特征并为我工作

OpenLayers select features with polygon

当我画一条线时,它会返回我相交的特征(道路和街道)。我想获得完全不在线的feautres。

实际地图:

enter image description here

这是从 openlayers 返回 LINESTRING 的输出。

红线显示选定的道路和街道。

我使用了openlayers的 intersects 功能。

enter image description here

我想获得以下输出

enter image description here

我还通过openlayers获取黑线的 LINESTRING几何来尝试POSTGIS。

LINESTRING(-15999.270647679 6714225.9041112,-16582.102988273 6714070.6413976)

我已经使用了这些函数ST_DWithin,ST_Intersects

SELECT array_to_string(array_agg(distinct id), ',') 
FROM streets  
WHERE  st_dwithin(ST_GeomFromText('LINESTRING(-15999.270647679 6714225.9041112,-16582.102988273 6714070.6413976)',900913),st_transform(geometry, 900913),0);

SELECT array_to_string(array_agg(distinct id), ',') 
FROM streets  
WHERE  st_intersects(ST_GeomFromText('LINESTRING(-15999.270647679 6714225.9041112,-16582.102988273 6714070.6413976)',900913),st_transform(geometry, 900913));

所以现在我的问题是如何才能得到黑线下的道路和街道?

我在openlayers或postgis中找到解决方案。 openlayers可以提供行几何,这样我就可以直接从数据库中查询。

0 个答案:

没有答案