我正在尝试计算最近的邻居.为此,我需要传递一个参数来限制与邻居的最大距离.例如,哪些是半径1000米内最近的邻居?
我做了以下事情:
我用数据创建了我的表:
id | name | latitude | longitude
Run Code Online (Sandbox Code Playgroud)
之后,我执行了以下查询:
SELECT AddGeometryColumn ( 'public' , ' green ', ' geom ' , 4326 , ' POINT' , 2 );
UPDATE season
SET geom = ST_Transform(ST_PointFromText ('POINT (' || longitude || ' ' || latitude || ')', 4269), 4326);
Run Code Online (Sandbox Code Playgroud)
第一个问题,巴西的SRID是4326吗?什么是4269?
第二个问题,通过执行以下SQL
SELECT id, name
FROM season
WHERE ST_DWithin (
geom ,
ST_GeomFromText ('POINT(-49.2653819 -25.4244287 )', 4326),
1000
);
Run Code Online (Sandbox Code Playgroud)
这什么都不返回.据我所知,这个SQL会进一步指向最大距离的半径,对吧?
如果您将1000个结果显示为100000000,则会显示所有条目.
所以,我想知道这里有什么问题?