将一个点扩展特定的英里数

Expand a point by a specific number of miles

所以我在 SQL 服务器中有一个地理类型的空间列。这将 lat/long 坐标表示为单个点

值如下所示(作为字符串)

 POINT (-96.63 32.97)

我想做的是将其扩展为 circle/polygon 特定的英里数。 我认为 STBuffer 是我想要的命令,但我不知道如何使用它将半径扩大 X 英里数。

我的目标是稍后对其执行 STContains 以查看其中是否包含其他地理对象。像这样:

    WHERE L.SPATIAL_OBJ.STContains(IBL.SPATIAL_OBJ) = 1

我明白了。看起来像这样。 我会把它作为一个函数来做。

    CREATE FUNCTION [dbo].[udf_mile_ring]
    (
        @lat FLOAT,
        @lon FLOAT,
        @miles int
    )
    RETURNS GEOGRAPHY
    AS
    BEGIN

        DECLARE @meters FLOAT = @miles / 0.000621371;
        RETURN GEOGRAPHY::Point(@lat, @lon, 4326).STBuffer(@meters);

    END
    GO