我已经得到了一个数据库,其中填充了地址和 WGS84 坐标,可以在 0 到 50 公里的范围内计算参数中有多少个地址。
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
然后我有这个样本:Table1(主表)
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
Table2(然后我想将壁橱与 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
我如何找到最接近 lat='55,497922' AND Long='8,45101581' 的 WGS84。我的 sql 技能似乎仅限于此。我尝试使用“WHERE Table.wgs84long=LIKE xxx”,但效果不佳。
文章也将不胜感激:)