Есть, как правило, 180 градусов широты (-90) до 90 и 360 градусов долготы (-180 до 180).
Таким образом, приращения 18000 сотых градуса широты (т. Е. -90,00, -89,99, ... 89,99, 90,00) и приращения 3600 сотой степени долготы.
Предположим, вы положили это в двумерный массив. Если вы хотите с шагом 0,05 градуса, вам потребуется 3600 (18 000/5) строк для широты и 7 200 столбцов (36 000/5) строк для широты.
Итак, вы хотите преобразовать долготу/широту в два индекса массива. Вот один из способов:
- Возьмите свое число широты, которое будет находиться в диапазоне от -90 до 90 и добавит к нему 90 очков. Это дает вам число от 0 до 180.
- Умножьте на 100 и округлите вверх. Это дает вам число от 0 до 18 000.
- Разделить на 5
Это ваш индекс строки.
Сделайте то же самое с долготой, но добавьте 180, чтобы получить число от 0 до 360. Это дает номер столбца.
Пример:
Расположение Austin, TX является широта: 30,267, LNG: -97,743
30.267 + 90 = 120.267
120.267 * 1000 = 12027 (rounded up)
12027/5 = 2405
-97.743 + 180 = 82.257
82.257 * 1000 = 8226 (rounded up)
8226/5 = 1645
Так Остин, штат Техас будет идти в ведре (2450,1645)
Из Конечно, преобразование индексов обратно в широту и долготу - это просто обратное исходное преобразование. Для широты умножьте на 5, разделите на 1000 и вычтите 90.
Первоначальная мысль заключалась бы в том, чтобы просто разделить и полы, но '0.15/0,05', например, не совсем 3. Умножьте на 100 и разделите пол на 5, возможно? –
Поскольку земля не плоская, ваши ведра становятся все более треугольными, когда вы приближаетесь к полюсам. Это означает, что, грубо говоря, ваши самые большие ведра будут там, где больше людей, что может быть очень плохо, если ваша проблемная область находится под влиянием людей.(Конечно, это не имеет значения, если вас интересует только небольшой участок земного шара, особенно если патч находится рядом с экватором.) – rici
Так в чем ваш вопрос? Вы вообще что-то пробовали? Если вы хотите поместить все целые числа от 0 до 1000 в ведра на основе результата деления их на 2, сколько ведер вам понадобится? Если вы можете решить эту проблему, тогда вы можете решить эту проблему. –