繁体   English   中英

我如何结合地理点和几何多边形

[英]how do I join against a geographic point and a geometry polygon

我有一个sql server 2008引擎。 在我的数据库中,我有两个表。 表A具有PK1列和用于POINT值的地理数据类型。 表B的PK2列的几何数据类型用于POLYGON值。 我需要输出具有列PK1和PK2的表C。 要填充此表,我需要在GEOMETRIC POLYGON中设置Geographic POINT的选择联接。

我已经尝试过以下查询:

SELECT p.PropertyID
   ,p.ParcelID
   ,t.GEOID
FROM [bhdev].[dbo].[REF_TRACTS] t
join bhdev.dbo.PropertyParameters p on p.Geolocation.STIntersects(t.geom)=1

这将导致以下错误:操作数类型冲突:sys.geometry与sys.geography不兼容

我如何才能加入工作? 谢谢

提示在错误文本中:

操作数类型冲突: sys.geometry与sys.geography不兼容

(我的重点是)我的猜测是[bhdev]。[dbo]。[REF_TRACTS] .geom是几何类型列,而不是应有的地理位置。 您将不得不将其转换为以下内容:

geography::Point([bhdev].[dbo].[REF_TRACTS].geom.X, 
    [bhdev].[dbo].[REF_TRACTS].geom.Y, 
    3426
)

(或切换X和Y,具体取决于您存储纬度的位置),我的建议是通过向表中添加新列,执行上述转换,调整所有引用geom列的代码来转换所有行引用新列,最后将旧列重命名为其他名称。 重命名后没有任何代码中断后,请完全删除该列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM