22.11.2024
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Как я карты прогружал
vadДата: Пятница, 14.09.2012, 13:04 | Сообщение # 1
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
Возникла необходимость использовать гис сервер в "оффлайн" режиме. Проще говоря серверная часть флита и гис-сервер были в виртуалке и доступа по 80 порту на tile.openstreetmap.org сделать было нельзя как по техническим причинам, так и по административным. Виртуалка за натом,, наружу проброшен только порт 6500 до нашего сервера. А ОSM во флите очень сильно хотят видеть. Да не просто наш любимый краюшек, а всю нашу необъятную. При такой постановке вопроса сразу пришла в голову мысль выгрузить все через какую-нибудь SASпланета. Но не тут то было - формат кэша другой(точнее есть там какое-то исправление номер 780, но я не допетрил как...).
Помочь мне в этой проблеме никто не смог(тонкий намек), поэтому я сам начал копать и оказалось что структура сайта tile.openstreetmap.org в точности повторяет кэш M2M Gisplatform.
картинка для примера


в настройках самого gis


Осталось только разобраться что же есть эти цифры и откуда они берутся. Но тут и без гуглов ясно что z - это зум. 0<=Z<=17. (http://tile.openstreetmap.org/0/0/0.png - вся земля) далее X и Y зависят от Z, а именно 0<=X<2^z и 0<=Y<2^z.

Решил выгрузить все это добро wget'ом и за пару часов на BASH был написан скрипт(вру конечно, дергали постоянно и не давали сосредоточится). Вообщем выгружаю не все, а только между определенными координатами xup,xdown,yup,ydown. В скрипте создаются нужные папки в нужных местах и туда качаются нужные файлы.

Хочу сказать что процесс занимает много времени, но фишка баша в том что я могу загружать параллельно файлы с разных зумов. Результат тоже заставляет задуматься. Сейчас у меня выгружается 14ый зум следующие координаты по x c70 по 100 градус, по y с 40 по 70 градус. В тэйлах это будет
Code
xup=$[ 2**$z*250/360 ]  #70 градусов 250=180+70
xdown=$[2**$z*280/360]  #100 градусов 280=180+100
ydown=$[2**$z*40/180]  #40 градусов
yup=$[2**$z*70/180]   #70 градусов

И результат на сейчас
600mb, 826к файлов.

Если вдруг кому-то интересно будет - пишите, будем вместе думать.

P.S.:Думается мне на детальных зумах уменьшить координаты до нашего уютненького края.

Думаю что изза того что скриптец под linux он мало кому будет интересен, но на всякий случай вот его скрин
Прикрепления: 9442389.png (221.8 Kb) · 2273948.png (89.8 Kb) · 8203488.png (205.8 Kb)
 
logoffДата: Понедельник, 17.09.2012, 08:44 | Сообщение # 2
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
wget и под wind живет, адаптировать скрипт не проблема - выкладывай smile
с картинки перерисовывать лениво.
 
vadДата: Понедельник, 17.09.2012, 09:46 | Сообщение # 3
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
Вообщем тема такая. Если брать гигантскую область(как у меня) то шибко много получается тэйлов. все выходные качалось и результат 2 гига и 3,5 миллиона файлов. И это только примерно процентов 10.
если взять 17 зум и подставить в формулу
Code
xup=$[ 2**$z*235/360 ] #70 градусов 250=180+70
xdown=$[2**$z*269/360] #100 градусов 280=180+100
ydown=$[2**$z*47/180] #40 градусов
yup=$[2**$z*55/180] #70 градусов

то выйдет 85560<X<97939 это 12379вариантов умножить на 34224<Y<40049 это 5825 вариантов, то получится 72107675 тэйлов. В среднем по 10к тэйл - вообщем не вариант.

Вообщем то вывод такой - отдельные области детально подгружать.

Добавлено (17.09.2012, 09:46)
---------------------------------------------
Вот скриптец, но я думаю что лучше с нуля писать. Придет ясность и понимание. Да и не такой уж он и хитрый.
Сразу скажу что быдлокодерство, нет времени сесть и подумать



Сообщение отредактировал vad - Понедельник, 17.09.2012, 09:32
 
  • Страница 1 из 1
  • 1
Поиск:

LogOff © 2024
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС