SASGIS - SAS.Планета
View Issue Details
0003544SAS.Планета[All Projects] Хотелкаpublic18-08-2019 11:2920-08-2019 07:06
RiverMap 
zed 
normaltweakalways
resolvedfixed 
190707 
191221191221 
0003544: Операция создания области по треку работает совершенно неудовлетворительно
Функция с точки зрения наличия есть, а с точки зрения применения - ее нет вообще.
Категория поставлена как Хотелка, хотя это скорее функциональный баг.
По крайней мере в тех условиях, в которых я бы смог использовать эту функцию.
Дело, видимо, в постановке задачи.

Вопрос: в чем смысл этой функции?
Имхо, обеспечить покрытие такой области, чтобы расстояние от ЛЮБОЙ ТОЧКИ трека до ближайшей точки границы области было равно заданному, скажем, плюс-минус 1%.

Выполняет ли функция эту задачу? Очевидно, нет.
Сейчас функция покрывает лишь часть требуемой области.
Примерно от 1% до 100% при большой удаче. А в среднем ~ 80% от заданного.
После ее использования приходится в обязательном порядке брать мышку и редактировать область на всем ее протяжении по всем точкам.
Другими словами, создавать заново с нуля.
Хорошо, что есть инструмент с неудачным названием "Измерить окружность", очень помогает. Правильнее его назвать "Задать окружность".
Берем трек, применяем к нему функцию "Операции с выделенной областью", задаем параметр =1000.
Прилагаю участок реального маршрута по малой реке, по которому построена область с параметром radius =1000м.
Также там нарисованы окружности с центром на треке и радиусом =1000м

Хорошо видно, что даже на концевых точках область заполняется не полностью.
А справа от крайней правой точки трека вообще беда, трек практически касается границы области.
No tags attached.
related to 0003439closed vdemidov Выделение вдоль пути создаёт область с границами не везде параллельными пути 
related to 0002049resolved zed Необходимо переделать выделение области вокруг пути (трека) 
related to 0003548confirmed  Вынести в настройки параметры генератора полигона вокруг трека 
jpg SAS_Область=1км+Окр.jpg (91,174) 18-08-2019 11:29
http://www.sasgis.org/mantis/file_download.php?file_id=2341&type=bug
jpg
Issue History
18-08-2019 11:29RiverMapNew Issue
18-08-2019 11:29RiverMapFile Added: SAS_Область=1км+Окр.jpg
18-08-2019 14:14zedNote Added: 0019249
18-08-2019 15:14RiverMapNote Added: 0019250
18-08-2019 15:17zedNote Added: 0019251
19-08-2019 06:25TolikNote Added: 0019252
19-08-2019 07:55zedSummaryОперация создания области по треку работает совершенно неудовлетворительно. => Операция создания области по треку работает совершенно неудовлетворительно
19-08-2019 07:55zedDescription Updatedbug_revision_view_page.php?rev_id=7450#r7450
19-08-2019 07:56zedProduct Version => 190707
19-08-2019 07:57zedNote Added: 0019254
19-08-2019 07:57zedStatusnew => feedback
19-08-2019 07:59zedRelationship addedrelated to 0003439
19-08-2019 08:00zedRelationship addedrelated to 0002049
20-08-2019 02:41RiverMapNote Added: 0019273
20-08-2019 02:41RiverMapStatusfeedback => new
20-08-2019 02:47RiverMapNote Edited: 0019273bug_revision_view_page.php?bugnote_id=19273#r7454
20-08-2019 02:51RiverMapNote Edited: 0019273bug_revision_view_page.php?bugnote_id=19273#r7455
20-08-2019 05:38RiverMapNote Added: 0019275
20-08-2019 06:53zedRelationship addedrelated to 0003548
20-08-2019 07:06zedNote Added: 0019277
20-08-2019 07:06zedStatusnew => resolved
20-08-2019 07:06zedFixed in Version => 191221
20-08-2019 07:06zedResolutionopen => fixed
20-08-2019 07:06zedAssigned To => zed
20-08-2019 07:06zedTarget Version => 191221

Notes
(0019249)
zed   
18-08-2019 14:14   
В следующей ночной версии эта функция будет работать точнее, по крайней мере не должно быть бага "трек практически касается границы области". Правда, скорость генерирования упадёт в 10 раз.

Параметры генератора можно/нужно вынести в настройки, чтобы каждый мог выбрать для себя баланс между необходимой точностью и производительностью. Там в общем-то всего два параметра, но из-за того, что конфига раньше вообще не было, много писанины...
(0019250)
RiverMap   
18-08-2019 15:14   
Вот это правильное решение!
Если есть функция, имеющая параметры, все они должны быть доступны для юзера, хотя бы через файл настроек, если уж не через UI.
Не надо считать юзеров идиотами, кто хочет, пусть настраивает прогу под себя, ну а если что, всегда далжна быть возможность вернуть функцию к умолчаниям.
Да и компы у всех разные, у кого маломощный субноут, а у кого и водонапорная башня, которая под столом не умещается.
(0019251)
zed   
18-08-2019 15:17   
Ну, это не решение, а просто мысли вслух. Кому это критично, пусть занимается.
(0019252)
Tolik   
19-08-2019 06:25   
Что значит "совершенно неудовлетворительно"? Для той задачи, для которой она была написана, она работает совершенно удовлетворительно. А именно, для скачивания некотрой области вокруг трека, состоящей из квадратных тайлов. Причем неважно, если где-то скачается больше, где-то меньше.

У вас, очевидно, другая задача. Какая? Для чего нужна высокая точность?
(0019254)
zed   
19-08-2019 07:57   
Результат, который даёт текущая ночная версия, всё ещё неудовлетворителен для вас?
(0019273)
RiverMap   
20-08-2019 02:41   
(edited on: 20-08-2019 02:51)
Tolik, нужна не какая-то особо высокая точность, нужно покрытие области вокруг трека тайлами в пределах заданного расстоянием от него, чтобы в дальнейшем, когда эта область используется для экспорта карты, в навигаторе была карта по всему треку, а не кусками - там есть, там нет.
А если, как вы говорите "неважно, если где-то скачается больше, где-то меньше", в карте будет полно пробелов, что совершенно неприемлемо.

Вообще непонятно, почему сейчас область строится путем ВПИСЫВАНИЯ отрезков в окружности с центрами в точках трека.
Очевидно же, создаваемая область должна покрывать трек снаружи окружностей, по касательной к ним, а не изнутри. Только так можно обеспечить полное покрытие области и сохранить умеренную точность алгоритма.

(0019275)
RiverMap   
20-08-2019 05:38   
zed, версия 2019-08-19 строит область гораздо лучше, худшее расстояние от трека до границы области уже не нуль, а 76% от заданного.

По скорости, кстати, разницы я не заметил, все мгновенно.
Так что точность я бы ещё прибавил.
(0019277)
zed   
20-08-2019 07:06   
Когда будет реализован 0003548 тогда и сможете прибавить точности, а пока что дефолт будет таким. Задайте радиус 1200м, вместо 1000м и будет вам покрытие с запасом.

А вот тут можно взять бинарник со вшитыми настройками "по максимуму":
- число точек окружности 64
- максимальная погрешность 0,1% от радиуса

Скорость работы алгоритма можно посмотреть (и сравнить) в меню Вид - Debug Info и включить фильтр по строке LineToPoly.