【发布时间】:2016-10-05 23:45:50
【问题描述】:
我正在地图上创建一个多边形并尝试获取与该多边形最相关的街道。但是,虽然我的查询在多边形覆盖 3-5 条街道时有效,但在覆盖更大区域时会返回上述错误。我试图从我的查询中获得至少一个街道代码结果。我错过了什么?
SELECT ID FROM STREET WHERE CITY_STREET_CODE = (
SELECT
NS.CITY_STREET_CODE CITYSTREETCODE
FROM NEIGHBOURHOOD_STREET NS
INNER JOIN NEIGHBOURHOOD N
ON N.ID = NS.NEIGHBOURHOOD_ID
WHERE SDO_RELATE(N.GEOLOC,
MYGEOLOC,
'MASK=ANYINTERACT') = 'TRUE'
AND NS.CITY_STREET_CODE IN
(SELECT CITY_STREET_CODE
FROM (SELECT CITY_STREET_CODE, DISTANCE
FROM (SELECT
A.CITY_STREET_CODE, SDO_NN_DISTANCE(1) DISTANCE
FROM STREET A
WHERE SDO_NN(A.GEOLOC,
MYGEOLOC,
'SDO_BATCH_SIZE=10 DISTANCE=500 UNIT=M',
1) = 'TRUE'
AND A.CITY_STREET_CODE > 0
ORDER BY DISTANCE)
WHERE ROWNUM <= 1))
)
ps:我尝试降低和增加批量大小,我也尝试用“sdo_num_res”代替它;两者都不起作用,或者是我做不好。
【问题讨论】:
-
将第一个
=改为in。 -
天哪,谢谢你好先生!您可以将其发布为回复,以便我标记它吗? (但有一点解释)
标签: oracle spatial spatial-query oracle-spatial