我有四个字段lat1,lng1,lat2,lng2,我想计算它们之间的距离(舍入到1 deciaml位置)。
例如 表:
-----lat1-----|--- lng1 ----| ----lat2----|---lng2----|
53.4603045 | 9,98243 | 53,4470272 | 9,9956593 |
我试过了:
SELECT ST_Distance(POINT(lat1, lng1),POINT(lat2, lng2)) as distance FROM table
我需要改变什么?
答案 0 :(得分:2)
PostGIS就是答案。
我会试一试
答案 1 :(得分:0)
如果你的postgres附带了plv8扩展名(javascript),你可以这样做:
CREATE OR REPLACE FUNCTION distance_example(_la integer, _lb integer) RETURNS
real AS $$
var locations = plv8.execute("SELECT * FROM location WHERE id IN ($1, $2)", [_la, _lb]);
var x = locations[0].longitude - locations[1].longitude;
var y = locations[0].latitude - locations[1].latitude;
return Math.sqrt(x * x + y * y);
$$ LANGUAGE plv8 IMMUTABLE STRICT;
select distance_example();