gpt4 book ai didi

sql-server - SQL Server 2008 空间 : find a point in polygon

转载 作者:行者123 更新时间:2023-12-02 00:20:02 26 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 空间数据类型。我有一个表,其中所有状态(作为多边形)作为数据类型 GEOMETRY。现在我想检查一个点的坐标(纬度、经度)作为数据类型 GEOGRAPHY 是否位于该州内。

我找不到任何使用新空间数据类型的示例。目前,我有一个多年前实现的解决方法,但它有一些缺点。

我同时拥有 SQL Server 2008 和 2012。如果新版本有一些增强功能,我也可以开始使用它。

谢谢。

更新1:

为了更加清晰起见,我添加了一个代码示例。

declare @s geometry  --GeomCol is of this type too.
declare @z geography --GeogCol is of this type too.

select @s = GeomCol
from AllStates
where STATE_ABBR = 'NY'

select @z = GeogCol
from AllZipCodes
where ZipCode = 10101

最佳答案

我认为地理方法 STIntersects() 会做你想做的事:

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::Point(47.653, -122.358, 4326)

SELECT @g.STIntersects(@h)

关于sql-server - SQL Server 2008 空间 : find a point in polygon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054149/

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