爲什麼PostgreSQL會抱怨運算符&&
不存在? (我已經安裝了PostGIS - 見下文)。PG :: UndefinedFunction:ERROR:運算符不存在:geometry && box
mydb=# SELECT "monuments".* FROM "monuments" WHERE
mydb=# (coord && '-10,-10,10,10'::box)
mydb=# ORDER BY created_at DESC ;
ERROR: operator does not exist: geometry && box
LINE 1: ...LECT "monuments".* FROM "monuments" WHERE (coord && '-10...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
我已經安裝了PostGIS:
mydb=# select postgis_full_version();
NOTICE: Function postgis_topology_scripts_installed() not found. Is topology support enabled and topology.sql installed?
postgis_full_version
----------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.1.0 r11822" GEOS="3.3.8-CAPI-1.7.8" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.0, released 2013/04/24" LIBXML="2.9.1" LIBJSON="UNKNOWN" RASTER
順便說一句,我的表是這樣的:
mydb=# \d monuments
id | integer | not null default nextval('monuments_id_seq'::regclass)
coord | geometry(Point,3785) |
讓我知道如果你需要任何更多的信息。
非常感謝這些信息。我能夠使用'WHERE(coord && ST_Envelope('LINESTRING(-10 -10,10 10)':: geometry))''來處理查詢,但是我不知道如何將'box'轉換爲'geometry你按照你的建議。你能不能告訴我? – user664833
我還使用'WHERE ST_WITHIN(coord,ST_MakeEnvelope(-10,-10,10,10,3785))'以及'WHERE coord @ ST_MakeEnvelope(-10,-10,10,10, 3785)' - 但我仍然不知道如何*將'box'轉換爲'geometry' *。 – user664833
它也適用於'WHERE(coord &&'LINESTRING(-10 -10,10 10)':: geometry)'和'WHERE(coord @'LINESTRING(-10 -10,10 10)':: geometry)' - 這與我的第一條評論類似,但沒有「ST_Envelope」。 – user664833