Страница 1 из 1

Cache Converter (Lat_Lon2Mercator)

СообщениеДобавлено: 04 авг 2009, 16:23
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

Re: Cache Converter (Lat_Lon2Mercator)

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

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

Re: Cache Converter (Lat_Lon2Mercator)

СообщениеДобавлено: 04 авг 2009, 18:46
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)

Re: Cache Converter (Lat_Lon2Mercator)

СообщениеДобавлено: 05 авг 2009, 08:22
relictus
WERTA - сурсы можешь расшарить?

Re: Cache Converter (Lat_Lon2Mercator)

СообщениеДобавлено: 05 авг 2009, 10:48
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, либо удалять нафиг - чтоб в кэше остались только целые тайлы.

Re: Cache Converter (Lat_Lon2Mercator)

СообщениеДобавлено: 05 авг 2009, 17:59
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), такой ядовитый цвет в живой природе точно не встречается. В общем все это делать в памяти без всяких сохранений на диске

Re: Cache Converter (Lat_Lon2Mercator)

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

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