AdeelKhann Ответов: 1

Как проверить lat long in circle или нет SQL server


i have query that reply with this that latitude and longitude are in Rectangle or not.please check below code and image file.

My question is how to get result of circle? mylat long in circle or out i have "lat":"25.38227896335241","lon":"68.3395897859009"},"radius":"141.4213562373095" in database

example : "i have latitude longitude of car i am checking latitude ,longitude are in circle or not if in circle result 'Car in Circle' if not 'Car out of Circle area' this logic perfect in my rectangle but i want circle result also"


Что я уже пробовал:

Объявить @g география,
@контактный географии,
@pOut география


Объявите @minY varchar(10);
Объявить @maxY varchar(10);
Объявить @minX varchar(10);
Объявить @maxX varchar(10);
Объявите @carlat varchar(10);
Объявите @carlong varchar(10);
Объявить @CarIdx int;
выбирать
@minY = g. minlatitude, --N '29.7071393481341'
@maxY = g. minlongitude, --N '64.808349609375'
@шалунья = г.maxlatitude , --Н-28.2463279710488'
@maxX = g. maxlongitude --N '63.292236328125'
из tblgeofencing as g, где ShapeType = 'прямоугольник'
Набор при G = география::полигон STPolyFromText ('((' + @шалунья + '' + @мины + ', ' +
@maxX + '' + @minY + ', ' +
@maxX + '' + @maxY + ', ' +
@шалунья + '' + @макси + ', ' +
@minX + '' + @minY + '))', 4326);

выберите топ 1 @CarIdx= IDx в, @carlat = Ф.широта, @carlong = Ф.долго checkgeofence как заказать F по убыванию индекса IDx
SET @pIn = geography:: STPointFromText ('POINT ('+ @carlat +' ' + @carlong +' )',4326)
SET @pOut = geography:: STPointFromText ('POINT( 28.709860843942856 63.643798828125 )', 4326)

Выберите Poly = @g,
пин-код = @пин,
рвых = @дуться
Выберите DistanceInMetersIn = @g. STDistance( @pIn ),
DistanceInMetersOut = @g. STDistance( @pOut ),
STIntersectsIn = @g.STIntersects( @pIn ),
STIntersectsOut = @g.STIntersects (@pOut )
Выберите STIntersectionIn = @g.STIntersection (@pIn).Метод toString(),
STIntersectionOut = @g.STIntersection (@pOut).Метод toString()
if (@g. STIntersects( @pIn ) >= 1)
обновление checkgeofence
set IsGeofence = 1
где idx = @CarIdx

1 Ответов

Рейтинг:
1

Patrice T

Вам нужно рассчитать расстояние между центром вашего круга и автомобилем. Использование расстояния большого круга
Расстояние большого круга - Википедия, свободная энциклопедия[^]