【发布时间】:2016-05-15 02:02:06
【问题描述】:
我正在尝试查找范围内的所有道路。
这是我的要求:
select osm_id,
name,
from planet_osm_roads
where ST_Contains(ST_GeomFromEWKT('SRID=900913;POLYGON((4355764.028 6715445.513, 4364401.418 6715674.192, 4364248.577 6708736.416, 4354808.572 6709155.795, 4355764.028 6715445.513))'), way)
LIMIT 100;
或者那个:
select osm_id,
name,
from planet_osm_roads
where ST_Contains(ST_GeomFromText('LINESTRING(4355764.028 6715445.513, 4364401.418 6715674.192, 4364248.577 6708736.416, 4354808.572 6709155.795, 4355764.028 6715445.513)', 900913), way)
LIMIT 100;
我在本地数据库上做所有事情,需要的数据都有。
多边形这样的:
【问题讨论】:
-
您的数据在哪个 SRID 中?您的查询中似乎使用了 900913
-
ST_SRID(way) 在查询中返回 900913
-
第一个创建多边形的例子是正确的。 LineStrings 只包含精确在线上的点,因为根据定义,它们没有面积。
标签: postgresql openstreetmap postgis