【问题标题】:Check whether geospatial Point in bounding rectangle检查边界矩形中的地理空间点是否
【发布时间】:2012-07-10 01:36:42
【问题描述】:

我有代表地球上边界矩形的坐标:

左上角纬度

左上角经度

右下角纬度

右下角经度

我需要编写一个函数来确定具有经纬度坐标的给定点是否命中边界矩形。

有什么办法吗? 我没有在 sql server 中找到执行此操作的函数。所有函数都适用于线条和多边形,但我只有边界,而不是完整的多边形或线条。

【问题讨论】:

    标签: sql sql-server-2008 geospatial spatial


    【解决方案1】:

    您需要创建一个包含四个点的多边形,并针对您的几何点调用STWithin,或针对地理调用STIntersects

    即:http://msdn.microsoft.com/en-us/library/ff929207.aspx

     declare @area geography, @point geography
     select @area = geography :: STGeomFromText('polygon((10 10, 20 10, 20 20, 10 20, 10 10))', 4326)
     select @point = geography :: STGeomFromText('point(15 15)', 4326)
     select @area.STIntersects(@point)
    
     select @point = geography :: STGeomFromText('point(5 5)', 4326)
     select @area.STIntersects(@point)
    

    【讨论】:

    • 如果我通过现有点的简单计算来计算左下角和右上角并使用它们来构造多边形,它会是地球上的有效矩形吗?
    • 不 - 那将是一条线。您需要解释其他两点(即:(左上纬度,右下经度),(左上经度,右下纬度)
    • @Madman 啊,这仅适用于 Sql 2008 上的几何 - 我认为 STIntersects 应该对地理做同样的事情
    • @Madman 我已经修改了答案以显示一个地理示例
    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2012-06-13
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多