找到最近的坐标(wgs84)

时间:2015-08-12 13:30:22

标签: sql database wgs84

我已经有一个数据库填充了地址和WGS84坐标到我计算的位置,在0到50 km的范围内,参数中有多少个地址。

SQL:

DECLARE @Lat float, @Long float;
DECLARE @MaxRange int, @MinRange int, @RangeDivisor float, @RangeEnhed varchar(10);
SET @MinRange = 0; -- Minimumsafstand fra punkt
SET @MaxRange = 50; -- Maksimumaftand fra punkt
SET @RangeDivisor = 1000; -- Enhedslængde
SET @RangeEnhed = 'KM'; -- Enhed

USE Potentiale
SELECT @Lat = dbo.HeleDanmark_DAWA.wgs84koordinat_bredde, @Long = dbo.HeleDanmark_DAWA.wgs84koordinat_længde
FROM dbo.HeleDanmark_DAWA WHERE KVHx = '10100040014010000'; -- Skiftes ud så vi har noget at søge på (Std.: Abel Catrhines Gade 14 = 10100040014010000)

WITH Distance AS (
SELECT
  KVHx,
  wgs84koordinat_bredde,
  wgs84koordinat_længde,
  Geog.STDistance(geography::Point(@Lat, @Long, 4326))/@RangeDivisor [Afstand],
  @RangeEnhed [Enhed]
FROM dbo.HeleDanmark_DAWA)

SELECT KVHx, wgs84koordinat_længde AS Long, wgs84koordinat_bredde AS Lat, Afstand, Enhed
FROM Distance
WHERE Afstand <= @MaxRange AND Afstand >= @MinRange 
ORDER BY Afstand

然后我有这个样本: 表1(主表)

Latitude          |     Longitude
-------------------------------------
55.5313963845829  | 8.35251516977335
55.5312443688612  | 8.35277495818283
55.5301254735429  | 8.35153843756768
55.5611352006539  | 8.47886488626897
55.5604841267899  | 8.47779554332068
55.5624113202676  | 8.47854023997904
55.560663076283   | 8.47289325417751

表2(然后我要将壁橱与table1数据匹配!)

Latitude    | Longitude
-------------------------
55,497922   | 8,45101581
55,60777589 | 8,504865646
55,12208021 | 9,066325298
55,81149643 | 8,642359956
55,55564138 | 8,846147399
55,26855212 | 9,180423727
55,61868893 | 8,474493713
55,73017722 | 8,221978913

如何找到最近的WGS84到lat = '55,497922'AND Long ='8,45101581'。 我的sql技能似乎有限。我试过“WHERE Table.wgs84long = LIKE xxx”,但这样做并没有那么好。

文章也会非常感激:)

0 个答案:

没有答案