Google区域检查SQL查询级别SQL Server

时间:2016-06-01 17:40:41

标签: sql sql-server sql-server-2008 sql-server-2012

如何检查区域中SQL Server汽车中的经度纬度是否请帮助我。

区域经度

  1 12426   1100    32.231389663    72.246093750    31.765537409    71.455078125    rectangle

汽车经度纬度

12426   31.966143862   71.806640625

enter image description here

2 个答案:

答案 0 :(得分:1)

如果我理解您的问题,以下内容应该对您有用。我需要您提供数据的样本脚本,并且期望的结果是100%确定。

Select *, -- Returns values for alias F if a match is found or else nulls for F.
        Case When F.ID Is Null 
            Then 'Not in a zone' 
            Else 'In a zone' 
            End InZoneIndicator
    From checkGeoFence C
    Left Join tblgeofencing F On C.Lat Between F.MinLatitude And F.MaxLatitude
                        And C.Long Between F.MinLongitude And F.MaxLongitude

答案 1 :(得分:0)

DECLARE @g    geography,
        @pIn  geography,
        @pOut geography


DECLARE @minY varchar(10) = N'32.15701248607007'
DECLARE @maxY varchar(10) = N'69.78515625 '
DECLARE @minX varchar(10) = N'30.921076375384878'
DECLARE @maxX varchar(10) = N'67.78564453125'

SET @g = geography::STPolyFromText('POLYGON((' + @minX + ' '  + @minY + ', ' + 
                                                   @maxX + ' ' + @minY + ', ' + 
                                                   @maxX + ' ' + @maxY + ', ' + 
                                                   @minX + ' ' + @maxY + ', ' + 
                                                   @minX + ' ' + @minY + '))', 4326);
SET @pIn = geography::STPointFromText('POINT(33.486435450999885 65.69677734375)',4326)
SET @pOut = geography::STPointFromText('POINT(  31.690781806136822 71.0595703125 )',4326)

SELECT Poly = @g, 
       pIn  = @pIn, 
       pOut = @pOut
SELECT DistanceInMetersIn  = @g.STDistance( @pIn ),
       DistanceInMetersOut = @g.STDistance( @pOut ),
       STIntersectsIn      = @g.STIntersects( @pIn ),
       STIntersectsOut     = @g.STIntersects( @pOut )
SELECT STIntersectionIn    = @g.STIntersection( @pIn ).ToString(),
       STIntersectionOut   = @g.STIntersection( @pOut ).ToString()
GO