Максимальная длина десятичного Градуса широты/долготы?

Причина состоит в том, что универсальный класс как List<>, в большинстве целей, которые рассматривают внешне как нормальный класс. например, когда Вы говорите List<string>(), в компиляторе говорится ListString() (который содержит строки). [Технический народ: это чрезвычайно plain-English-ified версия того, что продолжается]

, Следовательно, очевидно, компилятор не может быть достаточно умным для преобразования ListString в ListObject путем кастинга объектов его внутреннего набора.

Вот почему существуют дополнительные методы для IEnumerable, любят, Преобразовывают (), которые позволяют Вам легко предоставлять преобразование для объектов, сохраненных в наборе, который мог быть столь же простым как бросающий от одного до другого.

5
задан Alix Axel 9 February 2010 в 03:20
поделиться

4 ответа

Длина градуса широты мало , от примерно 110,6 км на экваторе до примерно 111,7 км на полюсах. Если бы Земля была идеальной сферой, она была бы постоянной. Для таких целей, как получение списка точек в пределах, скажем, 10 км от известного (широта, долгота), предположение, что постоянное значение 111 км должно быть приемлемым.

Однако совсем другая история с долготой . Она колеблется от 111,3 км на экваторе, 55,8 км на 60 градусах широты, 1,9 км на 89 градусах широты до нуля на полюсе.

Вы задали неправильный вопрос; вам необходимо знать МИНИМАЛЬНУЮ длину, чтобы гарантировать, что ваш запрос не отклоняет допустимых кандидатов, и, к сожалению, минимальная длина для долготы - НУЛЬ!

Допустим, вы следуете совету других людей использовать константу около 111 км как для широты, так и для долготы. Для запроса 10 км вы должны использовать запас 10/111 = 0,09009 градуса широты или долготы. На экваторе это нормально. Однако на 60-й широте (примерно там, где находится Стокгольм, например) путешествие на восток на 0.09 градусов долготы дает вам всего около 5 км. В этом случае вы неверно отклоняете примерно половину правильных ответов !

К счастью, вычисления для получения более точной оценки долготы (зависящей от широты известной точки) очень просты - см. этот ответ SO и статью Яна Матушека, на которую он ссылается.

9
ответ дан 18 December 2019 в 07:09
поделиться

Изначально морская миля определялась как длина одной минуты долготы на экваторе. Итак, вокруг экватора было 360 * 60 = 21 600 морских миль. Точно так же первоначальное определение километра заключалось в том, что 10 000 км = длина от полюса до экватора. Следовательно, если предположить, что Земля сферическая, то будет:

  • 40,000 ÷ 21,600 = 1,852 км в минуту
  • 1,852 × 60 = 111,11 км на градус

Допущение сферической Земли вместо сферической немного изменит фактор, но не на столько. Вы можете быть уверены, что коэффициент меньше 1,9 км в минуту или 114 км на градус.

7
ответ дан 18 December 2019 в 07:09
поделиться

Если вы можете использовать пространственные расширения MySQL: http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html , вы можете используйте его операторы и функции как для фильтрации точек, так и для расчета расстояний. См. http://dev.mysql.com/doc/refman/5.0/en/functions-that-test-spatial-relationships-between-geometries.html , в частности, функции содержат () и расстояние () .

4
ответ дан 18 December 2019 в 07:09
поделиться

Опорным эллипсоидом Земли является система WGS84, что означает что радиус Земли для экватора имеет длину 6 378 137 м или 3963,19 миль

Максимальная долгота достигается на экваторе и составляет приблизительно (верхняя граница) 111.3195 км или 69,1708 миль

Максимальная длина в один градус широты достигается между экватором и 1 °. Это почти точно равно максимальной длине долготы; первое приближение показывает, что разница составляет менее 4,2 метра, что дает

111,3153 км или 69.1682 миль

2
ответ дан 18 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

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