1

我已经得到了一个数据库,其中填充了地址和 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”,但效果不佳。

文章也将不胜感激:)

4

0 回答 0