Cache Converter (Lat_Lon2Mercator)

Обсуждение различной информации связанной с картографией в САСе, а также сторонние программные продукты для связки с САСом

Модератор: Tolik

Ответить
Аватара пользователя
WERTA
Соображающий
Сообщения: 79
Зарегистрирован: 14 мар 2009, 18:02

Cache Converter (Lat_Lon2Mercator)

Сообщение WERTA »

Конвертер проекции кэша из LAT_LON (GoogleEarth) в MERCATOR на сфере (Google Maps).
Будет полезен в связке с программой CacheMaster при работе с ресурсом GoogleEarth
Итересно его попробовать в высокихх широтах 70-76 град в плане качества изображений.
Вот ссылка
http://werta666.pisem.net/Cache%20Converter%20%28Lat_Lon2Mercator%29.exe
Cпасибо zed за исходный код GeoCachera
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение zed »

Конвертировать - конвертирует, только много "недоделанных" тайлов: то вообще белое пространство, то наполовину обрезанные...

По поводу использования, для тех, кто не в курсе:
1. Выкачиваем область/город в GoogleEarth
2. Распаковываем кэш GE в формат кэша GoogleMV при помощи CacheMaster
3. На распакованный кэш натравливаем Cache Converter
4. Просматриваем кэш в SAS или проч. прогах, понимающих qrst формат кэша.
Аватара пользователя
WERTA
Соображающий
Сообщения: 79
Зарегистрирован: 14 мар 2009, 18:02

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение WERTA »

Конвертировать - конвертирует, только много "недоделанных" тайлов: то вообще белое пространство, то наполовину обрезанные...

Так и должно быть, ведь один тайл GoogleEarth не имеет однозначного соотвествия тайлу GoogleMaps.
Я сделал так чтоб, один тайл GoogleEarth в зависимости от широты порождал как минимум от двух и более тайлов GoogleMaps. Алгоритм.
1. Читаю выбранный тайл GoogleEarth
2. Определ. его X,Y
3. Читаю Y-m,Y-2,Y-1,Y+1,Y+2,Y+m где m обр пропорц косинусу широты
4. Создаю буфер из m+1 битмапов.
5. Нарезаю тайлы GoogleMaps, здесь я похоже взял с запасом 4. а надо бы 2-3 тайа (для широт 55-60 град)
поэтому если соседних GE тайлов Y+1,Y-1 не оказывается в кэше, то и получаем rgb(255,255,255)
relictus
Новичок
Сообщения: 10
Зарегистрирован: 26 фев 2009, 15:23

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение relictus »

WERTA - сурсы можешь расшарить?
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение zed »

WERTA писал(а):3. Читаю Y-m,Y-2,Y-1,Y+1,Y+2,Y+m где m обр пропорц косинусу широты

Вот не понятно, каким тут боком косинус?

Мне алгоритм видится так:
1. Взял тайл GE
2. Определил его X,Y
3. Перевёл X,Y в Меркатор (левый верхний угол), а также перевёл X, Y-1 в Меркатор (левый нижний), т.о. получил X',Y' и X',Y''
4. Создал буфер m=Y'-Y'' (2-3 тайла всего)
5. Пошарился на диске на предмет наличия Меркаторовских тайлов X',Y' - X',Y'', если есть, загрузил в буфер (т.е. должны загрузится только недоделанные/неполные меркаторовские тайлы)
6. Отобразил GE тайл в буфер (при этом, если в буфер подгружались неполные тайлы, то они дополнятся до 100%)
7. Сохранил буфер, и пошёл по кругу.

Чтоб уменьшить потери при пересжатии тайлов для случая, когда в буфер подгружается неполный меркаторовский тайл, такие неполные тайлы можно сохранять на диск в bmp формате, а затем, по завершении цикла, либо конвертить их в jpg, либо удалять нафиг - чтоб в кэше остались только целые тайлы.
Аватара пользователя
WERTA
Соображающий
Сообщения: 79
Зарегистрирован: 14 мар 2009, 18:02

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение WERTA »

WERTA - сурсы можешь расшарить?

Без проблем на днях выложу сюда в тему

Вот не понятно, каким тут боком косинус?

1. Насчет кос-са широты. Сжатие географической проекции проп 1/cos(fi)
размер буфера должен быть m=trunc(1/cos(fi))+1, но засчет прикрепления к выбранному GE тайлу с боков m всегда берется до ближайшего большего нечетного числа (это с гарантией 100 % ).

Чтоб уменьшить потери при пересжатии тайлов для случая, когда в буфер подгружается неполный меркаторовский тайл, такие неполные тайлы можно сохранять на диск в bmp формате, а затем, по завершении цикла, либо конвертить их в jpg, либо удалять нафиг - чтоб в кэше остались только целые тайлы.


2. Я тоже считаю что оставлять недоклеенные тайлы это косяк, кому охоту держать у себя в кэше неполнноценный мусор.
думаю сделать галочку [v] - Не сохранять недоклеенные с краев тайлы. как узнать что тайл недоклеен, да очень просто нужно взять к примеру 5 равноотстоящих точек верхнего или нижнего края и проверить их пикселы. По умолчанию цвет заливки [255,255,255], тогда если все 5 или более пикселов края имеют такой цвет то это наводит на подозрения, несовершенство алгортма то что можно напороться на конкретно белоснежный зимний снимок, но это оч редко может случиться. Или тогда пробовать заливку по умолчанию (255,0,255), такой ядовитый цвет в живой природе точно не встречается. В общем все это делать в памяти без всяких сохранений на диске
Аватара пользователя
WERTA
Соображающий
Сообщения: 79
Зарегистрирован: 14 мар 2009, 18:02

Re: Cache Converter (Lat_Lon2Mercator)

Сообщение WERTA »

Добавил новую версию.
Выбор - не сохранять недоклеенные тайлы на диске. ссылка
http://werta666.pisem.net/CacheConverter%20%28Lat_Lon2Mercator%29.exe

исходник (пишу на 5-ой дельфе)
http://werta666.pisem.net/src%20Converter%20GE2GM.rar
Ответить

Вернуться в «Другие программы»