ПО КБ РАДАР ⚛️ Atom Spectra
814 subscribers
62 photos
38 videos
300 files
110 links
Используйте Поиск по каналу, чтобы найти актуальную версию приложений Atom Spectra, Atom Swift, Atom Next, Atom Mini2 для PC windows, Atom Simple.
Свои предложения разработчику Вы можете оставить в комментариях к последней версии программы.
Download Telegram
atomswift_1.3.214.apk
8.1 MB
#AtomSwift ☣️

Большой релиз. Перед установкой сделайте backup!

1.Добавлен функционал тайлов в карты. Число тайлов в стандартном пресете ограничено 4-мя:
- Dosemap.org tracks
- Dosemap.org averages
- OpenStreetMap
- Карта загрязнения Cs-137 1998 года с сайта "Это место"

За Dosemap.org и вообще за всю идею с XYZ тайлами говорим спасибо Максу Васильеву! 🤩 До момента общения с ним я вообще не знал, что это такое.

Планируется фиксированное количество доступных тайлов убрать в будущих версиях.

На момент релиза, работают только тайлы, построенные в проекции сферического меркатора (Google Map, DoseMap.org, OpenStreetMap, 2GIS etc..). Эллиптический меркатор, используемый, например в Yandex Maps - не поддерживается. В будущих версиях будет обязательно поддержка и эллиптического меркатора.

2. В настройках приложения доступен выбор типа Google map - NONE (Пусто). Это нужно, чтобы использовать тайлы других провайдеров (например OSM) вместо карт Google.

3. Доступны настройки для редактирования свойств тайлов:
- Название
- URL шаблон до сервиса тайлов. Ожидается префикс {"http://", "https://", "file:///"} и обязательные зарезервированные переменные: {x}, {y}, {z}.
- Максимальный уровень масштаба, который может вернуть провайдер тайлов. Целое число в интервале [5,21] Требуется для понимания, с какого уровня zoom нужно "растягивать тайлы", взятые с последнего доступного указанного уровня масштаба.
- Сколько дней кешировать тайлы в системном кэше приложения. Целое число в интервале [0,366]
- Прозрачность слоя тайлов.

По настройкам будет отдельное видео с пояснением.

4. Все настройки сохраняются в файл tile_providers.json

5. Файл настроек бекапится текущим функционалом бекапа через приложение. Возможно появится непосредственный шаринг файла настроек, когда кол-во тайл провайдеров будет не ограничено.

6.В приложении при работе с тайлами существуют 2 LRU кэша:
- кэш в памяти телефона, ограничен размером 100Мб
- дисковый кэш в системном разделе кэша приложения, ограничен размером 500Мб
Очистка дискового кэша происходит через стандартный интерфейс свойств андроид приложения atomswift, где расположена кнопка "Очистить кэш".
Ключом кэша до конкретного тайла является MD5 от итогового сформированного URL на основе шаблона и параметров x,y,z.

7.Доступен функционал сброса настроек всех тайл провайдеров на значения по умолчанию. Другими словами, если вы что-то не того накрутили, то можно всегда сбросить всё в дефолт.

8.В этом канале, отдельным постом будет зафиксирован список интересных тайл провайдеров, которые можно взять себе в качестве настроек.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
Maps_full_ru.zip
854.9 KB
#AtomSwift ☣️

Интересные провайдеры тайлов:

1.DoseMap.org
Треки:
шкала 0-0.23 -
https://dosemap.org/xyz-tracks23/{z}/{x}/{y}.png

шкала 0-0.57 -
https://dosemap.org/xyz-tracks57/{z}/{x}/{y}.png

полная шкала -
https://dosemap.org/xyz-tracks00/{z}/{x}/{y}.png


Усреднения:
шкала 0-0.23 -
https://dosemap.org/xyz-hex23/{z}/{x}/{y}.png

шкала 0-0.57 -
https://dosemap.org/xyz-hex57/{z}/{x}/{y}.png

полная шкала -
https://dosemap.org/xyz-hex00/{z}/{x}/{y}.png


MaxZoomLevel:
17

Тип меркатора: EPSG:3857 (Google, DoseMap, OSM)
Размер тайла: 256 пикселей


2. 2GIS
URL
https://tile0.maps.2gis.com/tiles?x={x}&y={y}&z={z}&ts=online_1

MaxZoomLevel
21

Тип меркатора: EPSG:3857 (Google, DoseMap, OSM)
Размер тайла: 256 пикселей

3. OpenTopoMap.org
URL
https://tile.opentopomap.org/{z}/{x}/{y}.png

MaxZoomLevel
21

Тип меркатора: EPSG:3857 (Google, DoseMap, OSM)
Размер тайла: 256 пикселей

4. ArcGis Sattelite
URL
https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}


MaxZoomLevel:
21

Тип меркатора: EPSG:3857 (Google, DoseMap, OSM)
Размер тайла: 256 пикселей

5. Яндекс карты
URL:
https://core-renderer-tiles.maps.yandex.net/tiles?l=map&x={x}&y={y}&z={z}&scale=1&lang=ru_RU

MaxZoomLevel:
21

Тип меркатора: EPSG:3395 (Yandex)
Размер тайла: 256 пикселей

6. Яндекс спутник
URL
https://core-sat.maps.yandex.net/tiles?l=sat&x={x}&y={y}&z={z}

MaxZoomLevel:
21

Тип меркатора: EPSG:3395 (Yandex)
Размер тайла: 256 пикселей

7. Яндекс карта (тёмная тема)
URL
https://core-renderer-tiles.maps.yandex.net/tiles?l=map&theme=dark&x={x}&y={y}&z={z}&scale=1&lang=ru_RU


MaxZoomLevel:
21

Тип меркатора: EPSG:3395 (Yandex)
Размер тайла: 256 пикселей

8. Яндекс карты в проекции меркатора EPSG:3857 (Google, DoseMap, OSM)
URL
https://core-renderer-tiles.maps.yandex.net/tiles?l=map&x={x}&y={y}&z={z}&scale=2&lang=ru_RU&projection=web_mercator


MaxZoomLevel:
21

Тип меркатора: EPSG:3857 (Google, DoseMap, OSM)
Размер тайла: 256 пикселей

P.S. Кто понял уже смысл настройки - во вложении большой файл с картами неразобранный. Можно самостоятельно поэкспериментировать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
atomswift_1.3.215.apk
8.1 MB
#AtomSwift ☣️

Добавлено:
1. Обязательные настройки провайдера тайлов:
Тип проекции меркатора:
- EPSG:3857 (Google, DoseMap, OSM)
- EPSG:3395 (Yandex)
Ранее в релизе все проекции были EPSG:3857 (Google, DoseMap, OSM). Добавлена работа с новой проекцией: EPSG:3395 (Yandex)
Размер тайла: 256 или 512 пикселей. Значение по умолчанию - 256 пикселей. Все ссылки на провайдеров в закрепе - 256 пикселей.
2. Возможность добавления/удаления неограниченного количества провайдеров тайлов.

P.S.
Ссылка с провайдерами тайлов дополнена новыми записями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
#AtomSwift ☣️

Преднастроенный пак с большим списком провайдеров тайлов от AlexeyB.

Как установить - см видео.

Важно!
Всё ранее настроенные провайдеры тайлов заменятся. Не забывайте делать бекап.
Please open Telegram to view this post
VIEW IN TELEGRAM
atomswift_1.3.216.apk
8.1 MB
#AtomSwift ☣️

Фиксы
1. При удалении слоя не менялась настройка какой слой отображать в Shared Preferences.
2. При сбросе списка слоёв в дефолт не менялась настройка какой слой отображать в Shared Preferences.

Оптимизация производительности расчётов с EPSG:3395 (Yandex) и работы с дисковым кешем.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1🙏1
atomswift_1.3.217.apk
8.1 MB
#AtomSwift ☣️

Добавлен новый тип меркатора: EPSG:900913 (EPSG:3857 inverse y)

Это, по сути, тот же тип, что и у Google, Dosemap, OSM, но с инверсией широты.

P.S.
Понадобился для наложения вот этого: https://remap.jrc.ec.europa.eu/Atlas.aspx

Список провайдеров с этого ресурса добавится в общий список, который в закрепе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2👌1
Cosmic
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:ECRM2006Raster3857@EPSG:900913@png/{z}/{x}/{y}.png


Radon indoor
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:IndoorAM@EPSG:900913@png/{z}/{x}/{y}.png


Uranium:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Uranio_soil@EPSG:900913@png/{z}/{x}/{y}.png


Thorium:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Torio_soil@EPSG:900913@png/{z}/{x}/{y}.png


K-40:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Potassio_soil@EPSG:900913@png/{z}/{x}/{y}.png


Почва:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:TGDR@EPSG:900913@png/{z}/{x}/{y}.png


Bedrock Uranium:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Bedrock_Uranium@EPSG:900913@png/{z}/{x}/{y}.png


Bedrock Thorium:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Bedrock_Thorium@EPSG:900913@png/{z}/{x}/{y}.png


Bedrock K-40:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:Bedrock_K2O@EPSG:900913@png/{z}/{x}/{y}.png


Проникаемость в почву:
https://redata.jrc.ec.europa.eu/atlas/gwc/service/tms/1.0.0/REM:permeability_soil_LAEA@EPSG:900913@png/{z}/{x}/{y}.png
🔥2
atomswift_1.3.218.apk
8.1 MB
#AtomSwift ☣️

Добавлена поддержка оффлайн карт в формате *.mbtiles

При добавлении файла из меню создания слоя производится первичная проверка содержимого, что есть таблица tiles и что она не пустая. Так же проводится ряд настроек нового тайл провайдера:
1. Высчитывается и подставляется max zoom из данных, что есть в таблице tiles
2. Выключается кеширование (нет смысла)
3. Выставляется тип меркатора EPSG:900913

Данная фича будет полезна там, где плохой интернет или интернет полностью отсутствует.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать mbtiles из чего угодно самостоятельно

P.S. Снимал одним дублем без подготовки, делаю этот сценарий в первый раз. Шёл по интуиции. Zoom level лучше бы побольше, чем 12, но и сложность с объёмом растёт 2^n
🔥2
Оффлайн слой карты загрязнения Cs-137
atomswift_1.3.219.apk
8.2 MB
#AtomSwift ☣️

Небольшие изменения:

1. Добавлена опция настройки размера кэша тайл провайдеров (значение по умолчанию - 500 Мбайт)
2. Время устаревания кэша увеличено с одного года до 4-х лет 😂

Кэш, живёт "своей жизнью" и собирает статистику эффективности отданных данных. При достижении размера максимума начинает удалять самые неиспользуемые тайлы. Т.е. следить за ним нет нужды. Он сам почистится, когда достигнет разрешённого максимума. Более детально можно почитать DiskLruCache readme.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5🙏1
atomswift_1.3.220.apk
8.2 MB
#AtomSwift ☣️

Небольшое обновление, внутренняя уборка:
- рефакторинг того, что проделано с тайлами
- оптимизация нескольких методов
- принудительный отказ использования кеширования, если источник тайла - оффлайн карты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1🙏1
atomswift_1.4.221.apk
8.2 MB
#AtomSwift ☣️

Важное отступление. Сменил минорную версию 1.3 -> 1.4 потому, что есть повод. Приложение за всё это время (около 200 релизов) получило значительный багаж функционала и сегодняшнее изменение вывело его на абсолютно другой уровень. Функционал картирования получил мощный инструмент анализа.

Довольно знаковый и большой релиз. В функционал картирования добавлена возможность построения карт изоуровней. При построении карты используется алгоритм марширующих квадратов.
Важно! Это нужно понимать!
1. Построение карты изоуровней нужно, в первую очередь, для маркеров которые записаны на замкнутой площади. То есть, вы выходите на участок и делаете обход змейкой по нему. Карты изоуровней не годятся для треков вида: "Я ехал из точки А в точку Б по прямой".
2. Качество карт на прямую зависит от плотности посадки маркеров и их количества. Чем больше маркеров и их плотность на исследуемый участок - тем лучше и достовернее будет карта изоуровней.
3. Получение карты изоуровней происходит по ВИДИМОЙ ЧАСТИ ЭКРАНА. Маркеры, не попавшие в видимую часть экрана не участвуют в построении карты!
4. Технически, построенная карта - это статическое изображение, которое отрисовывается на подложке карты гугля. Поэтому общий принцип построения и дальнейшей работы такой: обозначили экраном маркеры, запустили создание карты изоуровней, дальше зумим и изучаем.

Всё, написанное выше важно понимать и знать. Так сказать краткая выжимка. Дальше будет TLDR.

Теперь более подробно с начала.
1. Создать карту изоуровней можно двумя способами:
- назначив "горячую кнопку" на качельку громкости в настройках приложения: поставить/удалить карту изоуровней
- выбрав соответствующий пункт из меню справа сверху (три точки).
2.При нажатии генерации карты изоуровней берутся ВСЕ текущие маркеры с открытой карты, отсеиваются те, что не попадают в видимый экран смартфона.
3.Далее эти маркеры разбиваются на сетку размером 5-50 (см настройки карты изоуровней и там же кнопка Help). При конфликте маркеров на одну и ту же ячейку используется принцип децимации для групп маркеров из настроек приложения (min/avg/max).
4.Проводится подготовка данных к построению. Пустые ячейки сетки восстанавливаются данными методом ближайших соседей с параметрами из настроек (см настройки). Это важно, чтобы карта не "рассыпалась" на швейцарский сыр или хуже.
5.Подготовленные данные проходят через апскейл (увеличение размера сетки) x8 раз методом бикубической интерполяции. В настройки не вынесено.
6.Подготавливается разбивка на пороговые значения для изоуровней, за основу берётся min/max значение текущей метрики (DR, CP2S, ALT, SPD) с учётом фильтра по метрикам (шкала на карте справа). Вообще, работа с фильтром ВАЖНА при построении карты изоуровней. Если карта получилась слишком "синей", нужно опустить верхний край фильтра немного вниз, тем самым перераспределив пороги изоуровней вниз. И наоборот - для слишком "красной" карты, нижний фильтр нужно немного задрать вверх.
7.Полученные данные по маркерам и порогам разбивки на изоуровни прогоняются через алгоритм марширующих квадратов. На выходе получаем замкнутые контуры вида android.drawable.Path[].
8.Проводим афинные преобразования контуров, чтобы вписать их в картинку разрешения текущего экрана телефона.
9.Устанавливаем статическую картинку на Ground overlay гуглекарты.

За сим - всё :)
Если смогу не кашлять хотя бы час - запишу видео с использованием.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍61👏1🎉1
atomswift_1.4.222.apk
8.2 MB
#AtomSwift ☣️

Небольшие исправления:
1. Опечатка в тексте.
2. При изменении фильтра карта изоуровней обновляется автоматически.
3. Изменена палитра с 8 на 16 цветов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11