Object in 100 m distance, Error: Operation on mixed SRID geometries
Object in 100 m distance, Error: Operation on mixed SRID geometries
我执行以下查询:
SELECT * FROM "houses" WHERE (ST_Distance(coordinates, 'POINT(-0.374930 39.478400)'::geometry) < 100)
要查找距离以下 100 米左右的房屋:39.478400,-0.374930
我收到以下错误:
PG::InternalError: ERROR: Operation on mixed SRID geometries
这里有什么问题?
"Coordinates" is of type: geometry "coordinates", limit: {:srid=>4326, :type=>"geometry"}
几何文字 'POINT(-0.374930 39.478400)'::geometry
没有 SRID,而 houses.coordinates
中的几何具有 4326
的 SRID。您需要传递具有相同 SRID 的几何图形,即使用 ST_GeomFromText:
...
WHERE ST_Distance(coordinates, ST_GeomFromText('POINT(-0.374930 39.478400)', 4326)) < 100
但请记住,返回的距离以 SRID 为单位,对于 SRID 4326 是 度 而不是 米。要检索以米为单位的距离,您可以使用 ST_DistanceSphere.
我执行以下查询:
SELECT * FROM "houses" WHERE (ST_Distance(coordinates, 'POINT(-0.374930 39.478400)'::geometry) < 100)
要查找距离以下 100 米左右的房屋:39.478400,-0.374930
我收到以下错误:
PG::InternalError: ERROR: Operation on mixed SRID geometries
这里有什么问题?
"Coordinates" is of type: geometry "coordinates", limit: {:srid=>4326, :type=>"geometry"}
几何文字 'POINT(-0.374930 39.478400)'::geometry
没有 SRID,而 houses.coordinates
中的几何具有 4326
的 SRID。您需要传递具有相同 SRID 的几何图形,即使用 ST_GeomFromText:
...
WHERE ST_Distance(coordinates, ST_GeomFromText('POINT(-0.374930 39.478400)', 4326)) < 100
但请记住,返回的距离以 SRID 为单位,对于 SRID 4326 是 度 而不是 米。要检索以米为单位的距离,您可以使用 ST_DistanceSphere.