我已经有一个数据库填充了地址和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”,但这样做并没有那么好。
文章也会非常感激:)