如何为 SQL Server 2012 及更新版本使用 Convex Hull

How to use Convex Hull for SQL Server 2012 and newer

我正在努力在互联网上寻找直接的答案。希望有人能帮我解决这个问题。

我有一个包含经度和纬度的客户位置数据集。每个客户都是销售区域的一部分。下面是我拥有的数据 headers 的示例。

表 1:

SalesTerritory  -----  Customer -----   Longitude  -----  Latitude

我正在尝试创建一个 sql 查询,该查询将在销售区域的详细级别围绕这些区域执行凸包。我的最终目标是使用地图上的输出来显示销售区域。

感谢您的帮助!

将 lat/lng 转换为地理(或几何)值,然后使用 ConvexHullAggregateSalesTerritory 级别聚合。

;with geog_cte as
(
    SELECT SalesTerritory, geography::Point([Longitude], [Latitude], 4326) as customer_geog
    from Table1
)
SELECT SalesTerritory , geography::ConvexHullAggregate(customer_geog) as territory_convex_hull
FROM geog_cte 
group by SalesTerritory  ;