我正在尝试计算最近的邻居.为此,我需要传递一个参数来限制与邻居的最大距离.例如,哪些是半径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,则会显示所有条目.
所以,我想知道这里有什么问题?
我想知道如何通过springsecurity获取用户名,例如,我的用户表如下所示:
用户名 - 密码 - 名称
如果我使用以下两个选项,则通过用户名+密码进行身份验证:
<%= request.getUserPrincipal().getName() %>
<%= SecurityContextHolder.getContext().getAuthentication().getName() %>
Run Code Online (Sandbox Code Playgroud)
他会告诉我用户名值,但是如果我的用户名是一个有价值的个人文档,那么我只会显示字段名称的值.
这是怎么做的?我正在使用JSP + JSTL.谢谢.