Всем привет!
Озадачился задачей привязать(в Ozi) несколько пятисотметровок с maps.ggc.ru, любезно предоставленных Shurik'ом (viewtopic.php?f=2&t=1517), за что ему огромное спасибо:-)
Сначала пытался действовать по алгоритму здесь: http://ozi-piter.narod.ru/calibration/calibration.html
Но Ozi в конце калибровки всегда выдавал ошибку "invalid floating point operation". Система у меня Win7 64bit.
Нашел маленькую программку ggcozi.exe за авторством IgorKogan, которая должна автоматически привязывать лист с maps.ggc.ru по его названию. Однако в результате получается серьезное расхождение с Google (проверял по нескольким опорным точкам). Порядка 170 метров.
Пробовал привязывать лист как в оригинале (с белыми полями, немного повернут влево), так и обрезанный и развернутый. Результат аналогичный.
Кто подскажет, как же решить задачу точной привязки? То есть получить заветный файлик .map...
Привязка карт с maps.ggc.ru
Модератор: Tolik
- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Привязка карт с maps.ggc.ru
Указанная программа задаёт углам изображения координаты, соответствующие листам карт Главного штаба, однако углы карты никогда не совпадают с углами картинки. Поэтому и расхождения происходят. Автоматизировать установку маркеров на углы карты - задача решаемая, но сложная, поэтому гарантированно привязать карты правильно можно только вручную. В разделе Вики есть описание привязки как раз листа этих карт, посмотрите. Ссылка на эту тему: http://sasgis.org/wikisasiya/doku.php/привязка_пользовательских_карт_в_oziexplorer (кликать не надо, надо скопировать и в адресную строку браузера).
У меня есть небольшая утилитка для облегчения процесса привязки, она вычисляет координаты углов указанного листа карты масштаба 25k. Конечно, делалось под себя, поэтому работает только с тремя квадратами: N-36, N-37 и N-38.
У меня есть небольшая утилитка для облегчения процесса привязки, она вычисляет координаты углов указанного листа карты масштаба 25k. Конечно, делалось под себя, поэтому работает только с тремя квадратами: N-36, N-37 и N-38.
- Вложения
-
- .zip
- (294.33 КБ) 303 скачивания
- garl
- Гуру
- Сообщения: 1625
- Зарегистрирован: 16 июл 2008, 14:40
- Откуда: Краснодар, Кубанская столица.
- Благодарил (а): 97 раз
- Поблагодарили: 272 раза
Re: Привязка карт с maps.ggc.ru
Papazol писал(а): Конечно, делалось под себя, поэтому работает только с тремя квадратами: N-36, N-37 и N-38.
мега полезная штука. ибо приходится местами ручками подбирать это хозяйство.
а можно или добавить диапазон по России или если исходники на делфи и не секретные опубликовать их.
- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Привязка карт с maps.ggc.ru
Это написано на AutoIt'е, а не на Delphi. Исходный текст позволяет добавить всё, что угодно, язык довольно простой.
PS Посмотрел - а для N-36 ничего у меня не написано... Попробую поправить.
Посидел, подумал и дописАл программу. Теперь можно вычислять координаты углов для любых квадратов (в которые помещается Россия, это всё-таки ggc).
PS Посмотрел - а для N-36 ничего у меня не написано... Попробую поправить.
Посидел, подумал и дописАл программу. Теперь можно вычислять координаты углов для любых квадратов (в которые помещается Россия, это всё-таки ggc).
- Вложения
-
- Source.zip
- (2.94 КБ) 320 скачиваний
-
- Coords.zip
- (296.96 КБ) 336 скачиваний
Re: Привязка карт с maps.ggc.ru
Я с ggcozi.exe привязывал сотни карт, никогда ещё с таким не сталкивался.
Очень теперь забеспокоился, что где-то получились неточные привязки.
Вчера только всю московскую область километовку делал, а сегодня - 250-метровку. Накладываю в ози треки из инета- максимум 10-15 метров сдвиг, а в основном - меньше. У ggcozi.exe есть разные версии, у той, которой я пользуюсь размер - 509 952 байт.
Вроде неоткуда взяться расхождению - ищет угол, ставит точку по номенклатуре, всё должно быть очень точно.
Если есть расхождение, то получается на ggc границы номенклатурных листов сдвинуты? Вряд ли.
А какие листы дали такое расхождение?
Вообще такое расхождение (около 100) метров похоже на путаницу с датумами.
Очень теперь забеспокоился, что где-то получились неточные привязки.
Вчера только всю московскую область километовку делал, а сегодня - 250-метровку. Накладываю в ози треки из инета- максимум 10-15 метров сдвиг, а в основном - меньше. У ggcozi.exe есть разные версии, у той, которой я пользуюсь размер - 509 952 байт.
Вроде неоткуда взяться расхождению - ищет угол, ставит точку по номенклатуре, всё должно быть очень точно.
Если есть расхождение, то получается на ggc границы номенклатурных листов сдвинуты? Вряд ли.
А какие листы дали такое расхождение?
Вообще такое расхождение (около 100) метров похоже на путаницу с датумами.
Re: Привязка карт с maps.ggc.ru
Papazol писал(а):Это написано на AutoIt'е, а не на Delphi. Исходный текст позволяет добавить всё, что угодно, язык довольно простой.
PS Посмотрел - а для N-36 ничего у меня не написано... Попробую поправить.
Посидел, подумал и дописАл программу. Теперь можно вычислять координаты углов для любых квадратов (в которые помещается Россия, это всё-таки ggc).
Замечательно! Только уточните, программа работает только с масштабом 250м или может и с 500м?
Re: Привязка карт с maps.ggc.ru
eeonw писал(а):Я с ggcozi.exe привязывал сотни карт, никогда ещё с таким не сталкивался.
Очень теперь забеспокоился, что где-то получились неточные привязки.
Вчера только всю московскую область километовку делал, а сегодня - 250-метровку. Накладываю в ози треки из инета- максимум 10-15 метров сдвиг, а в основном - меньше. У ggcozi.exe есть разные версии, у той, которой я пользуюсь размер - 509 952 байт.
Вроде неоткуда взяться расхождению - ищет угол, ставит точку по номенклатуре, всё должно быть очень точно.
Если есть расхождение, то получается на ggc границы номенклатурных листов сдвинуты? Вряд ли.
А какие листы дали такое расхождение?
Вообще такое расхождение (около 100) метров похоже на путаницу с датумами.
Тренировался только на одном листе, O-37-038-Г (500м). Скачивал с Рамблера.
Вышеупомянутой ggcozi.exe лист подсовывать в исходном варианте или стоит обрезать поля и развернуть его?
- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Привязка карт с maps.ggc.ru
Возможно, я уже отстал от жизни, когда тестировал ggcozi, было именно так, как я написАл. Больше я её не пробовал, может, автор внёс изменения, улучшающие работу. Но ведь проверить это очень просто. Откройте в OziExplorer'е карту, привязанную с помощью ggcozi, и проверьте привязку. Если маркеры опорных точек стоЯт точно на углах карты (а не всего изображения!), привязка точная. В противном случае... Вообще-то почему-то не верится, что такая маленькая программа может автоматически находить углы карты.
Появилось время заняться картами ggc, и вот что обнаружилось. Есть где скачать листы (правда, в основном, однокилометровки и немного 500-метровок). Есть возможность их привязать (об этом чуть позже). И есть нужда их склеить в единое полотно, а затем порезать на тайлы, естественно, в Global Mapper'е. При склейке листы необходимо обрезать. Для этого раньше я использовал ту утилитку, что выложил недавно. Однако она работала в узком диапазоне возможных всяких значений, в частности, масштаб обрабатываемых карт был фиксированным и составлял 25k. И квадраты были ограничены. Решился я эту утилитку переделать, чтоб могла. И вот, теперь можно задавать любые квадраты, начиная с 1М и до 25k (только в северном полушарии, ну их нафиг!), а также пересылать обрезку прямо в Global Mapper. Последняя операция меня весьма напрягала, ибо при её выполнении требовалось внимательно набирать многия цифры. Теперь процесс автоматизирован, чему я весьма рад.
Конечно, не обошлось без ограничений. Поскольку набор горячих клавиш в Global Mapper'е не слишком обширен, многие вещи можно делать только мышью. А это накладывает ограничения при различных размерах экрана. У меня разрешение 1280х1024, с ним это и работает. Да, ещё мой Global Mapper русифицирован...
Итак, процесс следующий:
1. Скачиваем изображения квадратов (с привязками или без).
2. Если без привязок - привязываем, если с привязками - проверяем!
3. Открываем отобранные изображения в Global Mapper'е. Это может быть довольно долгий процесс в зависимости от количества квадратов.
4. Запускаем утилитку.
5. Далее в принципе всё интуитивно понятно. Цель работы - обрезать все загруженные квадраты, чтобы получилось цельное полотно. Рекомендую сначала выбирать квадрат в Global Mapper'е, и только потом в предлагаемой утилитке, в противном случае... ничего плохого не случится, но лучше так.
Теперь о привязке. Будучи приверженцем ручного способа как позволяющего полностью контролировать ход процесса, написАл ещё одну утилитку. Она пишет map-файлы для всех изображений, находящихся в указанной папке. Причём названия файлов этих изображений должны удовлетворять некоторому шаблону (чтобы правильно посчитать координаты углов). Созданные map-файлы называются так же, как соответствующие им изображения. В них правильно прописаны координаты опорных точек привязки (углов). А вот маркеры этих опорных точек поставлены во всех файлах одинаково, и они не совпадают с углами карт. Этот факт требует ручной коррекции привязки. Однако, по сравнению с привязкой "с нуля", не приходится вводить координаты, работа только с мышью.
Есть желание добить программу, чтобы стала универсальной. Так что пока её не выкладываю, как сделаю - сразу выложу.
Не прошло и года. Вот программа, которая пишет map-файлы для найденных в папке изображений. Условия:
1. Формат наименования всех файлов изображений должен быть либо P-40-035-D-c.png, либо P-40-035-G-v.png. То есть, буквы, которыми обозначаются квадраты 50k и 25k, могут быть либо abcd, либо abvg, но только один из вариантов для всех файлов. Расширение файлов значения не имеет, png - это по умолчанию.
2. Можно делать map-файлы для квадратов 1M, 100k, 50k, 25k. Теоретически можно в одной папке иметь разные масштабы, для них будут записаны правильные map-файлы, только это неудобно.
3. Можно добавлять в папку новые изображения, существующие файлы привязок не будут затронуты.
4. Необходима последующая ручная корректировка положений маркеров привязки!
Программа в архиве Program.zip.
Появилось время заняться картами ggc, и вот что обнаружилось. Есть где скачать листы (правда, в основном, однокилометровки и немного 500-метровок). Есть возможность их привязать (об этом чуть позже). И есть нужда их склеить в единое полотно, а затем порезать на тайлы, естественно, в Global Mapper'е. При склейке листы необходимо обрезать. Для этого раньше я использовал ту утилитку, что выложил недавно. Однако она работала в узком диапазоне возможных всяких значений, в частности, масштаб обрабатываемых карт был фиксированным и составлял 25k. И квадраты были ограничены. Решился я эту утилитку переделать, чтоб могла. И вот, теперь можно задавать любые квадраты, начиная с 1М и до 25k (только в северном полушарии, ну их нафиг!), а также пересылать обрезку прямо в Global Mapper. Последняя операция меня весьма напрягала, ибо при её выполнении требовалось внимательно набирать многия цифры. Теперь процесс автоматизирован, чему я весьма рад.
Конечно, не обошлось без ограничений. Поскольку набор горячих клавиш в Global Mapper'е не слишком обширен, многие вещи можно делать только мышью. А это накладывает ограничения при различных размерах экрана. У меня разрешение 1280х1024, с ним это и работает. Да, ещё мой Global Mapper русифицирован...
Итак, процесс следующий:
1. Скачиваем изображения квадратов (с привязками или без).
2. Если без привязок - привязываем, если с привязками - проверяем!
3. Открываем отобранные изображения в Global Mapper'е. Это может быть довольно долгий процесс в зависимости от количества квадратов.
4. Запускаем утилитку.
5. Далее в принципе всё интуитивно понятно. Цель работы - обрезать все загруженные квадраты, чтобы получилось цельное полотно. Рекомендую сначала выбирать квадрат в Global Mapper'е, и только потом в предлагаемой утилитке, в противном случае... ничего плохого не случится, но лучше так.
Теперь о привязке. Будучи приверженцем ручного способа как позволяющего полностью контролировать ход процесса, написАл ещё одну утилитку. Она пишет map-файлы для всех изображений, находящихся в указанной папке. Причём названия файлов этих изображений должны удовлетворять некоторому шаблону (чтобы правильно посчитать координаты углов). Созданные map-файлы называются так же, как соответствующие им изображения. В них правильно прописаны координаты опорных точек привязки (углов). А вот маркеры этих опорных точек поставлены во всех файлах одинаково, и они не совпадают с углами карт. Этот факт требует ручной коррекции привязки. Однако, по сравнению с привязкой "с нуля", не приходится вводить координаты, работа только с мышью.
Есть желание добить программу, чтобы стала универсальной. Так что пока её не выкладываю, как сделаю - сразу выложу.
Не прошло и года. Вот программа, которая пишет map-файлы для найденных в папке изображений. Условия:
1. Формат наименования всех файлов изображений должен быть либо P-40-035-D-c.png, либо P-40-035-G-v.png. То есть, буквы, которыми обозначаются квадраты 50k и 25k, могут быть либо abcd, либо abvg, но только один из вариантов для всех файлов. Расширение файлов значения не имеет, png - это по умолчанию.
2. Можно делать map-файлы для квадратов 1M, 100k, 50k, 25k. Теоретически можно в одной папке иметь разные масштабы, для них будут записаны правильные map-файлы, только это неудобно.
3. Можно добавлять в папку новые изображения, существующие файлы привязок не будут затронуты.
4. Необходима последующая ручная корректировка положений маркеров привязки!
Программа в архиве Program.zip.
- Вложения
-
- Program.zip
- (286.02 КБ) 359 скачиваний
-
- .zip
- (295.39 КБ) 333 скачивания
Последний раз редактировалось Papazol 09 ноя 2011, 11:36, всего редактировалось 1 раз.
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Привязка карт с maps.ggc.ru
готов отдать в хорошие руки программу с исходным кодом на дельфи. пишите в личку. программа 2-мя алгоритмами сама ищет углы а потом предлагает вручную подвинуть точки привязки - нельзя же доверять компьютеру
. На привязку 1 листа уходит несколько секунд, зато карты привязаны точно. программа создает corn файлы в папке с картой, что позволяет повторно не привязывать вручную те же карты.
Есть причуды, например карта копируется в новую папку при обработке, но писалось под личные нужды. Инструмент мощный, привяка под ози и глобал маппер с автоматической маркировкой в последнем невидимой области. Позволяет автоматизировать все этапы, предваряющие превращение в мозайку google maps.
жду желающих, (присылайте e-mail)
p/s/ для работы с кодом требуется LMD VCL.
маски для поиска углов
поиск углов
найденные углы потом надо отобразить и предложить пользователю подвинуть маркеры.
отрисовка увеличенных углов с маркером
Функции перерисовки карты при передвижении маркеров
Есть причуды, например карта копируется в новую папку при обработке, но писалось под личные нужды. Инструмент мощный, привяка под ози и глобал маппер с автоматической маркировкой в последнем невидимой области. Позволяет автоматизировать все этапы, предваряющие превращение в мозайку google maps.
жду желающих, (присылайте e-mail)
p/s/ для работы с кодом требуется LMD VCL.
маски для поиска углов
- скрытый текст: показать
поиск углов
- скрытый текст: показать
найденные углы потом надо отобразить и предложить пользователю подвинуть маркеры.
отрисовка увеличенных углов с маркером
- скрытый текст: показать
Функции перерисовки карты при передвижении маркеров
- скрытый текст: показать