Sql server 检索地图多边形Telerik中的点

Sql server 检索地图多边形Telerik中的点,sql-server,telerik,polygon,spatial,spatial-query,Sql Server,Telerik,Polygon,Spatial,Spatial Query,我试图通过空间查询获得多边形内的点,问题是点和多边形在同一个SQL表中,我附加了一张图片,结果是,你可以看到最后3条记录是包含点的多边形 我试过一个点,但它不起作用,因为我需要一个列表,其中包含多边形的名称和空间查询中的点 DECLARE @POI geography; DECLARE @POLYGON geography; SET @POI = (SELECT TOP 1 GEO FROM POI WHERE LAYERID <> 1026);

我试图通过空间查询获得多边形内的点,问题是点和多边形在同一个SQL表中,我附加了一张图片,结果是,你可以看到最后3条记录是包含点的多边形

我试过一个点,但它不起作用,因为我需要一个列表,其中包含多边形的名称和空间查询中的点

    DECLARE @POI geography;  
    DECLARE @POLYGON geography;  
    SET @POI = (SELECT TOP 1 GEO FROM POI WHERE LAYERID <> 1026);
    SET @POLYGON = (SELECT TOP 1 GEO FROM POI WHERE LAYERID = 1026);
    SELECT @POLYGON.STContains(@POI);

这样做应该可以:

select [point].ID, [poly].ID
from GEO as [point]
join GEO as [poly]
   on [point].LAYERID <> 1026
   and [poly].LAYERID = 1026
   and [poly].GEO.STContains([poly].GEO]) = 1;
当然,一旦你完成了匹配,你可以选择你想要的任何东西,我选择了相应的ID