Мне нужно вычислить максимальную и минимальную широту и долготу, чтобы иметь возможность фильтровать через огромный набор данных более легко, прежде чем вычислять расстояние между двумя точками.
Однако, я что-нибудь там, где расстояние является переменным, не найдя, поэтому я придумал следующее, так как я полагал, что я мог бы, возможно, вычислить их ступенчато:Вычислить MAX и MIN широту и долготу с переменным расстоянием от местоположения
DECLARE @area int = (69 * FLOOR(@maxDist/69) + 1)
DECLARE @lonMin float = @originLon - @maxDist/abs(cos(radians(@originLat)) * @area);
DECLARE @lonMax float = @originLon + @maxDist/abs(cos(radians(@originLat)) * @area);
DECLARE @latMin float = @originLat - (@maxDist/@area);
DECLARE @latMax float = @originLat + (@maxDist/@area);
Когда я пытаюсь применить значение Я получаю здесь свое заявление, поиск не выполняется, когда выше разницы в одной степени.
WHERE
(endPoint.Longitude >= @lonMin and endPoint.Longitude <= @lonMax)
and
(endPoint.Latitude >= @latMin and endPoint.Longitude <= @latMax)
Мое предположение, что мой Lonmin и lonMax неверны, но я не уверен, где я сломал его. Я довольно уверен, что я использую правильные формулы - другие, которые я просматривал до сих пор, одинаковы - так же проблема, которую я вычислил @area
или что-то еще?
(я работаю с Майлзом и например, входы, как 33.631701, -111,877582)
Вы должны изучить функцию ГИС или расширение для любой базы данных, которую вы используете. –
Географические возможности моей БД хороши, я знаю, что это такое и как их использовать, но следствие их использования - огромная потеря скорости. Поскольку он значительно крупнее и дороже, чем то, что я делаю, я бы предпочел избежать его, даже при потере некоторой точности (что не очень важно в моем случае использования) – Nol
@Nol Я работал что 69 - приблизительное расстояние в милях от одного градуса по экватору. Однако я не понимаю, что такое «площадь». Вы писали: «Я абсолютно уверен, что использую правильные формулы - другие, которые я просматривал до сих пор, одинаковы» - URL (ы), пожалуйста. Кажется, что у него проблемы, когда расстояние, например, 67,5, 68,0,68.5 мили. –