Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » SatMap (часть 3)
Программа для работы со спутниковыми снимками

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Открыть новую тему     Написать ответ в эту тему

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части темы

 
SatMap
просмотр, скачивание, кэширование, склейка и привязка спутниковых снимков/гибрида/карт/ландшафта с сервиса Google Maps.

 
FAQ
Настоятельно рекомендуется ознакомиться как опытным пользователям, так и всем новичкам.

 
Текущая версия 2.9.9 (multilingual):
История версий
полный комплект v2.9.9 (3.5 Mb)
v2.9.9 (только exe) (2.19 Mb)
SatMap API
 
* - архивы в формате 7-zip
 


Кэши скачанных районов
 


 
Официальный сайт http://satmap.narod.ru

 
Основные функции и возможности (на данный момент):
1. Импорт данных из кэша GoogleMV (версии 2.7+), SatMap, SASPlanet, Global Mapper
2. Формат кэша: 1 кэш = 1 файл
3. До 100 подключаемых кэшей
4. Экспорт в кэш формата GoogleMV, SatMap, SASPLanet, sqlitedb (RMaps, Locus Map, OruxMaps)
5. Поиск, сохранение и переход по введенным координатам/названию места
6. Импорт/экспорт путевых точек и треков в форматах OziExplorer (*.wpt, *.plt), *.gpx, *.kml
7. Измерение расстояния
8. Склейка/экспорт данных в графические форматы JPG, PNG, TIFF, ECW, JPEG2000, MrSID
9. Геопривязка в форматах Ozi Explorer, MapInfo, world-файл, TomTom overlay
10. Закачивание данных с сервиса Google Maps без бана
11. Показ высоты по данным SRTM
12. API для управления SatMap
13. Навигационный режим работы с GPS-приемником
14. Работа с базой данных географических названий объектов GNS
15. Пользовательские инструменты
16. Закачка тайлов только по треку (выбираемая ширина коридора в метрах или тайлах)
 
Планируется:
1. Работа с форматом kmz
2. Возможность скачивать данные с других сервисов
3. и многое другое......
 
Программа распространяется бесплатно. Используйте ее на свой страх и риск.
 
Помочь проекту
WebMoney:
R185452921094
Z336558313529
Яндекс.Деньги:
4100166097013

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 11:57 02-08-2010 | Исправлено: relictus, 10:40 24-08-2022
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001
К сожалению, в самом SatMap не получится добавить, т.к. в проекте используются несколько коммерческих продуктов, исходников которых у меня нет, а я уже использую новые версии Delphi (искать их ломаные версии просто некогда)...
Потому предлагаю простой python скрипт. Вот инструкция, если не знаешь что с ним делать :smile:
 
1. Подготовка (Установка Python)
Если Python еще не установлен, скачай установщик для Windows с официального сайта python.org.
При запуске установщика обязательно поставь галку "Add Python to PATH" (Добавить Python в переменную PATH). Это позволит запускать скрипт из любого места.
 
2. Настройка скрипта
Скопируй и вставь код ниже в любой текстовый редактор (Блокнот, Notepad++), сохрани с названием, допустим, satmap2mbtiles.py:
Прокрути в самый низ до раздела if __name__ == "__main__":.
В строке SOURCE_DB = r"..." вставь путь к своему файлу кэша.
В строке OUTPUT_DB = r"..." укажи, куда сохранить результат.
В строке DESIRED_TYPE = 0 укажи цифру типа карты, который нужно извлечь:
0 — Спутник
1 — Гибрид
2 — Карта
3 — Ландшафт
Сохрани и запусти (двойным кликом или через консоль). Или создай *.cmd, куда впиши "python satmap2mbtiles.py" (без кавычек).
 
Пробуй, отпишись, если возникнут проблемы :)
 
satmap2mbtiles.py

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 10:53 19-12-2025 | Исправлено: relictus, 11:47 29-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
Проверил работу скрипта satmap2mbtiles.py, всё в порядке: кэш satmap in.cache преобразовался в кэш sas.planet out.mbtiles и нормально открылся для просмотра в SAS.Planet.Release.251212.x64.
 
Проверил там способы открытия этого кэша: drug-and-drop в окно программы сработал нормально, и ассоциация в window расширения .mbtiles с программой SASPlanet.exe теперь открывает кэши *.mbtiles также просто, как открывает кэши SatMap *.cache в программе SatMap моя программа SatMapCacheView.exe.  
То есть, для открытия кэша в программе достаточно двойного щелчка мыши на файле кэша в проводнике Windows.
 
Правда пока не нашел в SASPlanet, как быстро перейти на 1 тайл открытого кэша .mbtiles, как это сделано в SatMap в контекстном меню "Показать 1-й тайл кэша".  
Так что после быстрого открытия кэша в SASPlanet.exe пришлось поискать в этом бесконечном пространстве тайлов, где же находится на карте открытый кэш .mbtiles. Но это уже вопросы к использованию SASPlanet.exe.
 
Осталось теперь получить бы такой же скрипт mbtiles2satmap.py, чтобы взаимодействие между кэшами программ SatMap и SASPlanet наконец-то стало бы полным и удобным. Чтобы один файл кэша SatMap превращался бы в один файл кэша SASPlanet формата .mbtiles, и наоборот.
Или в 4 файла .mbtiles, с учетом того, что один кэш SatMap содержит до 4 слоёв карты (Sat, Hyb, Map, Land), а кэш .mbtiles содержит в себе только один слой. Но это уже небольшие детали.
 
Может быть вы сделаете и такой скрипт для обратного преобразования формата кэша из .mbtiles в кэш SatMap?

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 15:53 22-12-2025 | Исправлено: nemo3001, 22:08 22-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А я, конечно, попытаюсь сделать такое преобразование кэша формата SatMap в кэш формата .mbtiles, и наоборот, более удобным для пользователя, чтобы не править каждый раз имена входного и выходного кэшей руками внутри текста скрипта: небольшой exe файл наверное сможет сам создавать исправленный текст скрипта на питоне, изменяя в нём имена входного и выходного кэша и заданный слой кэша по параметрам командной строки программы, и запуская затем исполнение исправленного скрипта в питоне.
 
Пока я себе представляю примерно такой пользовательский интерфейс к этим скриптам на питоне satmap2mbtiles.py и mbtiles2satmap.py (если он будет создан): есть файл satmap2mbtiles.exe, и если на него мышкой перенести кэш satmap in.cache, то сразу получаем рядом с ним до 4 кэшей out_0.mbtiles, out_1.mbtiles, out_2.mbtiles, out_3.mbtiles - в зависимости от количества имеющихся слоёв в файле in.cache.
И наоборот: если перенести на satmap2mbtiles.exe мышкой вместе до 4 кэшей in_0.mbtiles, in_1.mbtiles, in_2.mbtiles, in_3.mbtiles, то тут же получим рядом единый файл кэша satmap out.cache.
Эти же действия нужно будет, конечно продублировать в параметрах командной строки программы satmap2mbtiles.exe.
 
Но детали будут понятны позже, если всё-таки будет написан этот скрипт mbtiles2satmap.py, и можно будет как-нибудь заняться таким удобным для пользователя интерфейсом.

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 22:07 22-12-2025 | Исправлено: nemo3001, 22:14 22-12-2025
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001
Пробуй, не тестировал: mbtiles2satmap.py
По комментам в коде поймешь, что к чему)
Скрипт пытается вставить тайл.
Если тайла с такими координатами (x,y,z) и таким типом (f5) нет - он просто добавляется.
Если такой тайл уже есть - старый удаляется, а новый записывается на его место.
 
PS Я не знаю, чем ты создавал свой SatMapCacheView.exe, но GUI (пользовательский интерфейс) к этим скриптам можно сделать и на питоне, как и ехе. Ну или переписать под свой ЯП, алго конвертации теперь знаешь)

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 09:18 23-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
чем ты создавал свой SatMapCacheView.exe, но GUI (пользовательский интерфейс) к этим скриптам можно сделать и на питоне,

Да пока ничем еще не делал, планировал только сделать такой интерфейс на PureBasic, которые мне для этого удобен.
Да и не GUI пока хотел сделать, а интерфейс командной строки, чтобы долго не заморачиваться, но чтобы было удобнее пользоваться скриптами в повседневном их использовании.
 
С пользовательским интерфейсом все-таки удобнее, чем без него - не вспоминать через какое-то время и каждый раз при использовании, где там и что надо редактировать в тексте скрипта )

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 11:33 23-12-2025 | Исправлено: nemo3001, 15:33 23-12-2025
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001

Цитата:
Да и не GUI пока хотел сделать, а интерфейс командной строки

Так скрипт легко изменить под это дело. Вот пример для: satmap2mbtiles_cli.py
Запускать так, пример:
Код:
python satmap2mbtiles.py "C:\Path\To\cache" "C:\Path\To\result.mbtiles" --type 0

Первый путь — откуда брать.
Второй путь — куда сохранять.
--type 0 (или -t 0) — необязательный параметр. Если его не написать, скрипт сам подставит 0 (спутник). Если нужно выгрузить карту, пиши --type 2 т.п.

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 13:14 23-12-2025 | Исправлено: relictus, 16:51 23-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
python satmap2mbtiles.py "C:\Path\To\cache" "C:\Path\To\result.mbtiles" --type 0  

Вот теперь бы этот скрипт и в exe файл превратить, чтобы можно было им пользоваться просто в ОС без других файлов )
Ну, например, исполняемый файл можно назначить в список ассоциаций с каким-нибудь расширением имени  файла, а bat файл, где будет записана эта команда, так не назначишь.
 
Но всё равно получилось намного удобнее, чем первый вариант скрипта, и уже не нужно исправлять текст скрипта, а можно просто обходиться параметрами вызова скрипта, в том числе и параметрами для запуска bat файла.
 
Может быть сделаете такой же вариант с параметрами и для скрипта mbtiles2satmap.py?

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 15:28 23-12-2025 | Исправлено: nemo3001, 15:32 23-12-2025
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001

Цитата:
Может быть сделаете такой же вариант с параметрами и для скрипта mbtiles2satmap.py?

Без проблем: mbtiles2satmap_cli.py
Параметры запуска аналогичны предыдущему скрипту, только меняются местами источник и назначение.
И с каких пор мы на "Вы"?) Только заметил

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 16:50 23-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И с каких пор мы на "Вы"?) Только заметил

Хорошо у тебя получается утилиты на питоне писать )
 
А мне для питона всё не хватает возможности сделать на нём самостоятельные exe файлы, удобные и не зависящие от установки на компьютере самого интерпретатора языка.
Там вроде бы есть такая возможность, но что-то чаще встречаю вот такие скрипты, для запуска которых нужно иметь на любом компьютере установленный пакет питона.
 
Это и самому не очень удобно, и другим рассказывать об этом приходится. Куда проще пользователю, да и для себя тоже, иметь exe файл, в котором есть всё, что нужно для работы программы.

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 21:16 23-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
мне для питона всё не хватает возможности сделать на нём самостоятельные exe файлы, удобные и не зависящие от установки на компьютере самого интерпретатора языка

Вот ИИ подсказал:
"для превращения готового Python-скрипта в исполняемый файл под Windows обычно используют инструменты-упаковщики, например PyInstaller или Nuitka. Они собирают ваш код и все зависимости в один .exe, который можно запускать без установленного Python."
https://www.perplexity.ai/search/kak-skompilirovat-ispolniaemyi-edbsl7IJSreN1VVHDMn36Q
 
Так что может быть попробую теперь эти версии скриптов satmap2mbtiles_cli.py и mbtiles2satmap_cli.py, понимающих параметры командной строки, скомпилировать в exe файлы для удобства использования.

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 05:15 24-12-2025 | Исправлено: nemo3001, 05:17 24-12-2025
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001

Цитата:
А мне для питона всё не хватает возможности сделать на нём самостоятельные exe файлы, удобные и не зависящие от установки на компьютере самого интерпретатора языка. ... Куда проще пользователю, да и для себя тоже, иметь exe файл, в котором есть всё, что нужно для работы программы.

Если у пользователя нет питона, это прекрасный повод ему его поставить! Ты не лишаешь человека ценного жизненного опыта и не отнимаешь у него право на цифровую инициацию через ритуал очищения диска от старых версий Python, которые размножаются в системе почкованием и вступают в кровопролитные войны за ресурсы. Это же целый мир боли и приключений!  
Ты слышал про "эффект Икеи"? Люди больше ценят то, что собрали сами. Если ты дашь им exe, они забудут про твою программу через пять минут. Но если они два часа будут настраивать виртуальное окружение и прописывать пути вручную - они полюбят твой софт как родного ребенка. Слишком много труда вложено, чтобы просто так это удалить!
 
Ладно... Выдалась минутка, написал консольную утилиту-конвертер "2-в-1": SatMapMBTilesConverter.7z
Вот пара батников-примеров как юзать:
1. SatMap -> MBTiles test_s2m.bat
2. MBTiles -> SatMap test_m2s.bat

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 11:01 24-12-2025
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nemo3001
Обновил SatMapMBTilesConverter, скачай заново, линк тот же.
Что изменено:
1. Формат метаданных обновлен для соответствия спецификации MBTiles 1.3 (ранее 1.1).
2. Значение поля type изменено с overlay на baselayer. Это более логично для спутниковых и топографических карт, которые служат подложкой, а не наложением.
3. Добавлена логика автоматического расчета поля center в метаданных.
Берется первый экспортируемый тайл, его координаты (Z, X, Y) конвертируются в географические (Longitude, Latitude) с использованием математики Web Mercator. Результат записывается в формате: long,lat,zoom.

Всего записей: 3807 | Зарегистр. 19-04-2005 | Отправлено: 09:14 26-12-2025
nemo3001

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
для соответствия спецификации MBTiles 1.3

relictus
Да, спасибо за изменения.

Всего записей: 255 | Зарегистр. 06-05-2010 | Отправлено: 02:19 27-12-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Компьютерный форум Ru.Board » Компьютеры » Программы » SatMap (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.B0ard 2000-2026

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru