У меня есть 20 тыс. Активов в определенных местах в городе, в котором я живу, и я хотел бы определить, какие из этих активов находятся в пределах 600 метров от 250 объектов.Один актив может находиться в радиусе нескольких сайтов.Я хотел бы выводить только те активы, которые находятся в пределах радиуса сайта, за исключением всех других активов.
Я создал столбцы географических точек для актива и сайта на основе их известной широты и долготы в соответствующих таблицах.Код, который я использую ниже, работает, но для его расчета требуются часы, что невозможно для будущих задач.
Я использую LocalDB SQL Server и SSMS.
SELECT
Assets.Asset_ID, Assets.AssetPoint, Site.Site_ID, Site.SitePoint
FROM
Assets
CROSS JOIN
Site
WHERE
(Assets.AssetPoint.STIntersects(Site.SitePoint.STBuffer(600)) = 1)
Я надеюсь, что таблица с активами, сопоставленными с сайтами, будет рассчитана за несколько минут.