Простые вычисления для работы с lat/lon и расстоянием км?

CREATE PROCEDURE usp_GenerateDROP
    @Pattern AS varchar(255)
    ,@PrintQuery AS bit
    ,@ExecQuery AS bit
AS
BEGIN
    DECLARE @sql AS varchar(max)

    SELECT @sql = COALESCE(@sql, '') + 'DROP TABLE [' + TABLE_NAME + ']' + CHAR(13) + CHAR(10)
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_NAME LIKE @Pattern

    IF @PrintQuery = 1 PRINT @sql
    IF @ExecQuery = 1 EXEC (@sql)
END
114
задан smci 26 May 2019 в 06:01
поделиться

2 ответа

Приблизительные преобразования:

  • Широта: 1 градус = 110,574 км
  • Долгота: 1 градус = 111,320 * cos (широта) км

Это не совсем верно для полярное уплощение Земли - за что вы, вероятно, хотите более сложную формулу, используя эталонную WGS84 эллипсоид (модель используется для GPS). Но ошибка, вероятно, незначительна для ваших целей.

Источник: http://en.wikipedia.org/wiki/Latitude

Внимание : имейте в виду, что координаты широты выражаются в градусах, а функция cos в большинстве (всех?) языков обычно принимает радианы, поэтому требуется преобразование градуса в радианы .

206
ответ дан 24 November 2019 в 02:34
поделиться

Если вы используете Java, Javascript или PHP, то есть библиотека, точно выполнит эти вычисления, используя забавно сложную (но все же быструю) тригонометрию:

http://www.jstott.me.uk/jcoord/

6
ответ дан 24 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: