SQL Serverカーのゾーン内の経度緯度をチェックするかどうかを教えてください。GoogleゾーンチェックSQLクエリレベルSQL Server
経度
1 12426 1100 32.231389663 72.246093750 31.765537409 71.455078125 rectangle
下のゾーン車の経度緯度
12426 31.966143862 71.806640625
SQL Serverカーのゾーン内の経度緯度をチェックするかどうかを教えてください。GoogleゾーンチェックSQLクエリレベルSQL Server
経度
1 12426 1100 32.231389663 72.246093750 31.765537409 71.455078125 rectangle
下のゾーン車の経度緯度
12426 31.966143862 71.806640625
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
私はあなたの質問を理解していれば、正しく次のことがあなたのために働く必要があります。私は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
ありがとう、私はあなたにチェックし、答えますよ:) –
このクエリはありません9 –
ゾーン内のすべてのデータ車を返す –
これはちょうど、X1> = X> = x2の&& Y1> = Y> = Y2チェックしませんか? –
ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –