В базе 88557 объектов с определёнными координатами.
Пример из базы (10 случайных адресов):

Приобрести базу можно здесь
Как это можно использовать?
Можно написать процедуру, которая будет показывать объекты вблизи заданной точки (по адресу)
ALTER PROCEDURE [dbo].[GetNearestPoints]
@street nvarchar(150),
@home varchar(50),
@dist float
AS
BEGIN
SET NOCOUNT ON;
DECLARE @x float, @y float
DECLARE @dx float, @dy float
DECLARE @dx1km float, @dy1km float
SELECT @x=h.h_coordx, @y=h.h_coordy FROM houses h
INNER JOIN streets s ON h.h_streetid = s.s_id
AND s.s_name = @street
WHERE h.h_address = @home
SELECT @dx1km = 1/(108.307 * cos(@y*3.14159/180)), @dy1km = 1.0/111
SELECT @dx = @dist * @dx1km/2, @dy = @dist * @dy1km
SELECT s.s_name AS street,
h.h_address AS home,
h.h_coordx AS x,
h.h_coordy AS y
FROM houses h
INNER JOIN streets s ON s.s_id = h.h_streetid
WHERE h.h_coordx>=@x-@dx AND h.h_coordx<=@x+@dx
AND h.h_coordy>=@y-@dy AND h.h_coordy<=@y+@dy
ORDER BY s_name, h.h_coordx, h.h_coordy
END
Или в районе, ограниченном окружностью
ALTER PROCEDURE [dbo].[GetNearestPointsR]
@street varchar(150),
@home varchar(50),
@dist float
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #t (street varchar(50), home varchar(50), x float, y float)
DECLARE @x float, @y float, @phi float
DECLARE @xx float, @yy float
DECLARE @x2 float, @y2 float
DECLARE @dx float, @dy float
DECLARE @dx1km float, @dy1km float
SELECT @x=h.h_coordx, @y=h.h_coordy FROM houses h
INNER JOIN streets s ON h.h_streetid = s.s_id
AND s.s_name = @street
WHERE h.h_address = @home
SELECT @dx1km = 1/(108.307 * cos(@y*3.14159/180)), @dy1km = 1.0/111
SELECT @dx = @dist * @dx1km/2, @dy = @dist * @dy1km
DECLARE @counter int
SET @counter = 0
WHILE @counter < 3
BEGIN
SET @counter = @counter + 1
SELECT @phi = (@counter*45/2)*3.14/180
SELECT @xx = @dx*cos(@phi), @yy = @dy*sin(@phi)
INSERT INTO #t (street, home, x, y)
SELECT s.s_name, h.h_address, h.h_coordx, h.h_coordy FROM houses h
INNER JOIN streets s ON s.s_id = h.h_streetid
WHERE h.h_coordx>=@x-@xx AND h.h_coordx<=@x+@xx
AND h.h_coordy>=@y-@yy AND h.h_coordy<=@y+@yy
ORDER BY s_name, h.h_coordx, h.h_coordy
END
SELECT MAX(street) AS street, MAX(home) AS home, x, y FROM #t GROUP BY x, y ORDER BY x, y
DROP TABLE #T
END