gpt4 book ai didi

c# - 在sql server中从半径中查找多边形列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:01 25 4
gpt4 key购买 nike

我在 Sql Server 中将多边形列表存储为 Geometry 对象,然后根据纬度/经度绘制该点周围的半径。

这是我用来绘制半径的语句。

DECLARE @radiusInMeters FLOAT = 1000; 

DECLARE @radius GEOMETRY = GEOMETRY::Point(59.9283128,10.7132419, 4326).STBuffer(@radiusInMeters);

获得半径后,我使用以下语句搜索落在该半径范围内的多边形。

SELECT * FROM MyTableName WHERE area.STWithin(@radius) = 1;

但不是多边形落在半径内,而是从我的表中获取所有记录。

最佳答案

我找到了解决方案。感谢 Barry King 发了这么棒的帖子。

https://sqldev.wordpress.com/2010/06/24/sql-server-spatial-geometry-radius/

更新:

这是解决我问题的语句。

DECLARE @radius INT = 1000 -- e.g. in metres
DECLARE @geo geometry = geometry::Point(10.7132419,59.9283128, 4326).MakeValid()
SET @geo = GEOMETRY::STGeomFromWKB(GEOGRAPHY::STGeomFromWKB(@geo.STAsBinary(),4326).STBuffer(@radius).STAsBinary(),4326)
Select @geo.STAsText()

关于c# - 在sql server中从半径中查找多边形列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50604962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com