SASGIS

Веб-картография и навигация

SAS.NEXT - FMX version of SAS.Planet

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 19 апр 2017, 19:52

vdemidov писал(а):Зря не пользуешься битбакетом или гитхабом для хранения исходников.

Задолбало возиться с настройками аккаунтов, сертификатов и прочего, прочего.
Например, после последнего посещения битбукета мне прислали письмо на email по поводу этого посещения: ваш аккаунт возможно был взломан, мы его заблокировали, зайдите, поможем сменить пароль... В ... :roll: такое обслуживание. Я не храню ничего секретного, чтобы имя-пароль (без привязки к какому-нибудь гугл-аккаунту) было недостаточно.
Если же сделать домашнюю систему контроля версий, будет проблемно общаться с внешним миром.
Ну и пока от скачавших даже не единого отзыва, площадка для взаимодействия не нужна.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение vdemidov » 19 апр 2017, 20:27

DJ VK писал(а):Задолбало возиться с настройками аккаунтов, сертификатов и прочего, прочего.

По-моему ты что-то совсем не так делаешь. Регистрация не битбакете и создание нового репозитория занимают кликов 10. Что бы сделать локальный клон созданного репозитория нужно еще примерно столько же нажатий клавиш + ввод пароля, с которыми регистрировался. Только что для проверки заново зарегался с другим мылом. Совсем ничего сложного.
DJ VK писал(а):Ну и пока от скачавших даже не единого отзыва, площадка для взаимодействия не нужна.

Ну так и не будет. Я один раз скачал, глянул одним глазом. Плюс почитал лицензию :) И решил что больше скачивать не буду, так как оно меня не интересует в таком виде. А на битбакете дифы может быть иногда и смотрел бы :)
Но нет, значит нет.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 20 апр 2017, 17:26

vdemidov писал(а): А на битбакете дифы может быть иногда и смотрел бы :)
Но нет, значит нет.


Программа еще сыровата. Я до первой стабильной версии воздержусь от репозиториев.
скрытый текст: показать
Вот когда не стыдно ее будет и в Сирию отправить, тогда другое дело :roll:


20.04.2017.Версия API 1.07b.
Поправлена ориентация текста при повернутой карте.
Поддержан бинарный формат sas4ce.
Переделана форма перекрестия объекта, т.к. в движке fmx замечены проблемы с отрисовкой под углом путей с нулевой шириной.
Вложения
Mapper3D.rar
api 1.07
(154.65 KiB) Скачиваний: 187
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 05 май 2017, 16:34

Всех поздравляю с наступающим праздником и в качестве бонуса выкладываю новую версию программы.

Я не стал делить на этот раз изменения на релизы, и включил все в один новый.

Встречаем,
Release Candidate

rc2.jpg


04.05.2017.Версия API 2.00RC.
Добавлена поддержка тайлового кэша GM.
Новый интерфейс. Добавлена тема оформления.
Включение и выключение перекрестия центра экрана.
Целевая точка. (Круг с перекрестием.)
Базовый объект помечен жирным шрифтом и дополнительным свечением.
Слежение за объектами...
и так далее и тому подобное.... :D

Верхний тулбар:
1. Включение\выключение панели навигации.
2. Конфигурация (включение линейки, центра экрана, целевой точки, выбор начала отсчета дистанции (центр, цель, базовый объект).
3. режимы отображения: просмотр карты, слежение за целью, слежение за базовым объектом, слежение за любым объкетом.
4. В первых двух режиимах: Вызов панели ввода координат цели
5. В четвертом режиме: выбор номера объекта из списка
6. В третьем и четвертом режиме: ориентация карты по сторонам света или по азимуту объекта.

Проект переехал на облако.
https://cloud.mail.ru/public/6HKx/GGSwzoM7c

Счетчика скачиваний теперь нет, отписывайтесь по возможности об опыте эксплуатации.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 16 май 2017, 18:12

16.05.2017.Версия API 2.01RC.
Добавлена поддержка "тянутых" тайлов. При отсутствии тайла информация о его фрагменте загружается из предыдущего масштаба и так далее с заданным пределом.
В описание карт добавлена информация об алгоритмах обработки.
Для каждой карты можно указать итератор (спиральный или последовательный), двух ступенчатое изменение масштаба или одноступенчатое,и наконец, количество шагов для генератора тянутых тайлов.

Скачать можно по ссылке выше.

To Do. План развития.
скрытый текст: показать
-Кнопка быстрого вписывания всех объектов в экран.
-Поддержка GPS на уровне API ОС или COM-порта.
-Отображение треков и запись в файл.
-Настройки папок + Менеджер карт с возможность создания Групп Быстрого РеагированияВызова.
-Список быстрого выбора одной из групп карт в основном окне программы + механизм переключения групп.


Описание функций API
скрытый текст: показать
класс TNV_Mapper

конструктор
constructor Create(CachePath: string); указываем путь к кэшу

Работа с картами
procedure AddMap(MapDesk: TNV_MapDeskPtr); добавление карты с заданным описанием
procedure SetMapOpacity(Index: Integer; Opacity: Single); установка непрозрачности карты
procedure SetMapVisible(Index: Integer; Visible: Boolean); установка видимости карты
function GetMapsCount: Integer; получение числа карт
function GetMapOpacity(Index: Integer): Single; получение непрозрачности
function GetMapVisible(Index: Integer): Boolean; получение видимости

Перекрестие в центре экрана
procedure SetMapCenter(Color: TAlphaColor; PenWidth: Single; AWidth, AHeight: Integer); создание
procedure SetMapCenterVisible(Visible: Boolean); включение/выключение

Целевая точка(статический объект на карте)
procedure SetMapTarget(Color: TAlphaColor; PenWidth: Single; AWidth, AHeight: Integer); создание
procedure SetMapTargetPos(Lat, Lon: Double); установка координат
procedure SetMapTargetVisible(Visible: Boolean); включение/выключение
function GetTargetLat: Double; получение широты
function GetTargetLon: Double; получение долготы

Объекты
procedure AddObject(FileName: string; AWidth, AHeight: Integer); добавление объекта-изображения
procedure AddObject(Color: TAlphaColor; PenWidth: Single; AWidth, AHeight, CenterWidth, CenterHeight: Integer); добавление векторного объекта из стрелки с перекрестием в центре объекта
function GetObjectsCount: Integer; получение количества объектов
procedure SetObjectPos(Index: Integer; Lat, Lon, Altitude, Speed, Angle, CError: Double); установка координат объекта и других параметров
procedure SetObjectText(Index: Integer; Text: string); установка текстовой метки объекта
procedure SetBaseObject(Index: Integer); выбор базового объекта для расчета расстояний и др.(например привязанного к данному компьютеру)
procedure FollowObject(Index: Integer); включение/выключение следования за объектом
procedure SetDistanceFromCenterMode(Mode: TNV_MapObjDistanceMode); установка режима измерения расстояний (дистанция от центра экрана, от целевой точки или от базового объекта).
procedure SetFollowMode(FollowMode: TNV_FollowMode); установка режима отработки угла при следовании за объектом (сохранять азимут карты или поворачиваться по азимуту объекта)
function GetObjectLat(Index: Integer): Double; получение широты
function GetObjectLon(Index: Integer): Double; получение долготы
function GetObjectAltitude(Index: Integer): Double; получение высоты
function GetObjectSpeed(Index: Integer): Double; получение скорости
function GetObjectAzimuth(Index: Integer): Double; получение курса
function GetObjectError(Index: Integer): Double; получение ошибки координат
function GetObjectDistance(Index: Integer): Double; получение дистанции

работа с окном отображения карт
procedure SetViewport(Viewport: TViewport3D); установка вьюпорта для рисования
procedure SetProjection(ProjKind: TNV_MapProj; TileWidth, TileHeight: Integer; TilesHorzCountMultiplier, TilesVertCountMultiplier: Single); установка проекции для отображения карт
procedure SetLatLon(Lat, Lon: Double); установка широты и долготы центра карты
procedure SetScale(Z, DX, DY: Double); установка масштаба со смещением точки масштабирования от центра экрана
procedure MoveMap(DX, DY: Single); сдвиг карты
procedure SetRotationAngle(Angle: Single); поворот карты на указанный азимут

Обработка (вызывать из основного потока по таймеру или по событиям основного окна)
procedure Proc; обязательная к постоянному вызову функция внутренней обработки. Необходима для осуществления всей внутренней обработки в контексте основного FMX потока.

function GetLat: Double; Широта центра карты
function GetLon: Double; Долгота центра карты
function GetScale: Double; Масштаб карты
function GetZoom: Byte; Целочисленный масштаб карты (используемый z тайлов)
function GetPixScale: Double; Разрешение в метрах на пиксель.
function GetRulerDistance(var RulerWidth: Single): Double; получение ширины масштабной линейки.

Обработка движений мыши
procedure FindMouseCoord(DX, DY: Single); вычислить параметры для текущего положения мыши
function GetMouseLat: Double; широта
function GetMouseLon: Double; долгота
function GetMousePixScale: Double; Разрешение в метрах на пиксель в точке мыши.

За это сообщение автора DJ VK поблагодарил:
Parasite (16 май 2017, 21:09)
Рейтинг: 5.26%
 
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 29 авг 2017, 13:35

прикрутил NMEA, уже можно использовать как навигатор для винды.
Когда переведу наш пропиетарный код ком-порта и командного процессора на дельфи, опубликую проект, пока только анонс.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение samsomus » 29 авг 2017, 14:54

прошу меня извинить, не программист. Скачал, но там, как я понимаю одни исходники? Как получить рабочую программу?
samsomus
Постигающий Дао
 
Сообщения: 223
Зарегистрирован: 02 фев 2009, 23:14
Благодарил (а): 274 раз.
Поблагодарили: 7 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 29 авг 2017, 15:35

samsomus писал(а):прошу меня извинить, не программист. Скачал, но там, как я понимаю одни исходники? Как получить рабочую программу?


1) Открыть проект .dproj в rad studio 10.1 Berlin upd 2 или 10.2 Tokio.
2) Нажать одну из кнопок Run.
3) В подпапке win32 debug появится exe.

В отличие от планеты, это api - набор инструментов для работы с картой.
Поэтому программа при запуске жестко стартует где-то в фиксированной точке + открывает только определенные карты и слои из определенной папки кэша. Чтобы поменять точку и папку карты надо менять код и заново собирать программу. Зато можно сделать для себя с любыми настройками....

За это сообщение автора DJ VK поблагодарил:
samsomus (29 авг 2017, 21:15)
Рейтинг: 5.26%
 
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение DJ VK » 16 апр 2019, 13:22

API обретает вторую жизнь под андроид, только на c++.... В перспективе карты заполения, сетки, и другие инструменты...

Хочу разработать новый формат кэша, гибрид sas4ce (простая упаковка файлов в тома) и беркли (разбивка на квадраты 256x256 тайлов).
Структура папок аналогичная berkleydb. расширение - .nxt

1)заголовок. содержит информацию о расширении файлов карты. Что еще можно туда запихнуть и какой объем для этого зарезервировать?
2)Индекс.
В связи с тем, что кол-во тайлов в томе ограничено, индекс можно сделать фиксированным.
4 байта - смещение тайла x=0 y=0 (0 если тайла нет)
4 байта - длина
4 байта - дата-время создания файла (файловое время 32 бита)
4 байта - смещение тайла x=0 y=1 (0 если тайла нет)
....и так далее до x=255 x=255 (всего 756к байт индекс)

В отличие от sas4ce хотелось бы добавления формата не только в экспорт(Export), но и в основной функционал программы (TileStorage). Возможно ли это? Что-то мне подсказывает, что формат удобный только для чтения (перезапись и удаление в таком кэше не возможны) не примут... Если что - расстраиваться не буду, формат легко (с точки зрения программиста) распаковывается.
Для начала - что сделать для реализации "Экспорт в sas.next" ?
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: SAS.NEXT - FMX version of SAS.Planet

Сообщение vdemidov » 16 апр 2019, 20:06

DJ VK писал(а):Хочу разработать новый формат кэша, гибрид sas4ce (простая упаковка файлов в тома) и беркли (разбивка на квадраты 256x256 тайлов).
Структура папок аналогичная berkleydb. расширение - .nxt


Больше форматов кэша хороших и разных. Я только за.

DJ VK писал(а):1)заголовок. содержит информацию о расширении файлов карты. Что еще можно туда запихнуть и какой объем для этого зарезервировать?

Лучше все-таки ContentType - он допускает большую свободу в описании содержимого.

DJ VK писал(а):4 байта - длина
А она точно нужна? Может раз уж формат только для чтения, то можно потребовать что тайлы лежат последовательно? Или планируется где-то сделать и записываемый вариант?

DJ VK писал(а):В отличие от sas4ce хотелось бы добавления формата не только в экспорт(Export), но и в основной функционал программы (TileStorage). Возможно ли это? Что-то мне подсказывает, что формат удобный только для чтения (перезапись и удаление в таком кэше не возможны) не примут...

С чего бы это? Прописать что оно всегда ReadOnly и ладно. Кэш sas4wince SAS заглох просто потому, что Dima2000 забил на него и не доделал нормальную потокобезопасную версию тайлохранилища. А всем остальным оказалось не нужно.


Ждем пулреквест.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0