如何让地理字段填充半径值

Posted

技术标签:

【中文标题】如何让地理字段填充半径值【英文标题】:How do I get a geography field to populate with a radius value 【发布时间】:2019-11-07 19:49:38 【问题描述】:

我有一个接受地理值的 SQL 数据库字段,我正在尝试用地理点的半径填充该值。我希望能够通过 SSMS 对表执行此更新,因此 SQL 脚本将很有帮助。例如我有以下详细信息

Longitude: -87.6648
Latitude: 41.6747

我能够从以下 sql 语句计算地理点并将其保存到我的位置表中的地理编码字段

Update Locations 
    set geocode = geography::STGeomFromText ('POINT(' + @long + ' ' + @lat + ')', 4326)
where ID = @LocationID
geopoint = 0xE6100000010C3C4ED1915CD644405F984C158CEA55C0

现在我正在尝试获取此地理点半径 25 英里的值,并将该值保存到位置表中的另一个地理值。我将在代码的其他区域使用此值来确定位于这 25 英里范围内的供应商。

期待一个看起来像这样的值 0xE61000000104010400001299B63E963F4640BED9C566D7F154C0C7685C4F1D424640BF4C8A9870F354C0166EE998A0444640376D6DD30CF554C0E1943614204746400DC1AC13ACF654C0329125BA9B49464077EB79554EF854C09AFBA083134C4640C7B0FA94F3F954C0876D9C69874E464082FA48CE9BFB54C09F9D1465F7504640E1DB72FD46FD54C0107C0F6F6353464090967A1EF5FE54C0CE4E9C80CB554640CD9F562DA60055C0D7CDD3922F584640E0A5F1255A0255C0623FD89E8F5A4640DB952A04110455C00994D59DEB5C4640C4A1D4C3CA0555C0EA820189435F46400147B760870755C0B5A59B59976146402D558ED6460955C0B394ED08E76346403BF50921090B55C0B9024B9032664640F7B0CE3BCE0C55C015D911E9 ........ P>

【问题讨论】:

【参考方案1】:

试试 STBuffer()。像这样:

declare @metersPerMile = 40234;
select geocode.STBuffer(25*@metersPerMile)
From locations;

【讨论】:

以上是关于如何让地理字段填充半径值的主要内容,如果未能解决你的问题,请参考以下文章

绘制按钮以将纬度和经度添加到输入字段?地理编码

如何将 GPS exif 转换为地理?

如何通过以前的记录值自动填充字段?

如何更改多个填充的复选框输入字段值?

使用 Enum 填充字段的通用工厂

Vue.js 使用点击事件在模态框上填充表单字段值