SASGIS - SAS.Планета
View Issue Details
0001616SAS.Планета[All Projects] Хотелкаpublic08-10-2012 17:3211-10-2019 09:38
rass 
zed 
normalfeaturehave not tried
resolvedfixed 
110418 
191221191221 
0001616: Выделение квадратной области определяемый указанным радиусом вписанной окружности
Выделение квадратной области определяемый указанным радиусом вписанной окружности.

Аналог такого есть в GlobalMapper.

Допустим, кликаю курсором по интересующему Месту и указываю расстояние вокруг которого следует выбрать(очердность такая не обязательна). Тем самым решаются проблемы с центрованием Места в выделении при исползовании инструмента Прямоугольная область. А также серия выделенний таким образм нескольких Мест всегда будет иметь одинаковые размеры. Да и масштаб картинки в дальнейшем всегда удоно вычеслить по стороне квадрата, а не как обычно сейчас приходится замерять расстояние между опорными точками попавшими в выделение.
VIP
related to 0000663resolved zed Создание круглых областей заданного радиуса 
parent of 0001188resolved zed Алгоритм проецирования точки на эллипсоиде 
has duplicate 0001686closed vdemidov Функция выделения области по центральной координате и размеру области 
has duplicate 0002296closed vdemidov инцидент 0001686 не отработан 
related to 0002408confirmed  Возможность выделения прямоугольника по координатам центра и размерам в метрах 
jpg 08-10-2012 20-31-08.jpg (74,641) 08-10-2012 17:32
http://www.sasgis.org/mantis/file_download.php?file_id=1073&type=bug
jpg

jpg 29-10-2012 16-55-40.jpg (18,996) 29-10-2012 14:58
http://www.sasgis.org/mantis/file_download.php?file_id=1132&type=bug
jpg

jpg 29-10-2012 17-02-16.jpg (251,656) 29-10-2012 15:13
http://www.sasgis.org/mantis/file_download.php?file_id=1133&type=bug
jpg

? m.kmz (885) 06-10-2019 13:26
http://www.sasgis.org/mantis/file_download.php?file_id=2369&type=bug
Issue History
08-10-2012 17:32rassNew Issue
08-10-2012 17:32rassFile Added: 08-10-2012 20-31-08.jpg
09-10-2012 05:59TolikNote Added: 0009354
09-10-2012 05:59TolikNote Edited: 0009354bug_revision_view_page.php?bugnote_id=9354#r4557
09-10-2012 06:46vdemidovNote Added: 0009365
09-10-2012 06:49vdemidovRelationship addedparent of 0001188
09-10-2012 06:49vdemidovRelationship addedrelated to 0000663
09-10-2012 06:51vdemidovStatusnew => confirmed
09-10-2012 06:52vdemidovProduct Version.Nightly => 110418
09-10-2012 06:52vdemidovTarget Version => 29xxxx
23-10-2012 10:55rassNote Added: 0009713
29-10-2012 14:58rassFile Added: 29-10-2012 16-55-40.jpg
29-10-2012 15:12rassNote Added: 0009777
29-10-2012 15:13rassFile Added: 29-10-2012 17-02-16.jpg
09-11-2012 21:06vdemidovRelationship addedhas duplicate 0001686
24-12-2013 15:36zedRelationship addedrelated to 0002296
24-12-2013 16:05vdemidovRelationship replacedhas duplicate 0002296
16-04-2014 17:08vdemidovRelationship addedrelated to 0002408
06-10-2019 10:02zedAssigned To => zed
06-10-2019 10:02zedStatusconfirmed => assigned
06-10-2019 10:02zedTarget Version29xxxx => 191221
06-10-2019 10:02zedSummaryВыделение квадратной области определяемый указанным радиусом вписанной окружности. => Выделение квадратной области определяемый указанным радиусом вписанной окружности
06-10-2019 10:03zedTag Attached: VIP
06-10-2019 10:06zedNote Added: 0019353
06-10-2019 12:15zedNote Added: 0019354
06-10-2019 12:27zedNote Added: 0019355
06-10-2019 12:27zedNote Edited: 0019355bug_revision_view_page.php?bugnote_id=19355#r7478
06-10-2019 13:17Hunter23071985Note Added: 0019356
06-10-2019 13:21Hunter23071985Note Edited: 0019356bug_revision_view_page.php?bugnote_id=19356#r7480
06-10-2019 13:24Hunter23071985Note Edited: 0019356bug_revision_view_page.php?bugnote_id=19356#r7481
06-10-2019 13:26zedFile Added: m.kmz
06-10-2019 13:28Hunter23071985Note Edited: 0019356bug_revision_view_page.php?bugnote_id=19356#r7482
06-10-2019 13:33zedNote Added: 0019357
06-10-2019 13:36zedNote Added: 0019358
06-10-2019 13:47Hunter23071985Note Added: 0019359
06-10-2019 13:49Hunter23071985Note Edited: 0019359bug_revision_view_page.php?bugnote_id=19359#r7484
06-10-2019 13:54Hunter23071985Note Edited: 0019359bug_revision_view_page.php?bugnote_id=19359#r7485
06-10-2019 14:06zedNote Added: 0019360
06-10-2019 14:45zedNote Added: 0019361
06-10-2019 15:21Hunter23071985Note Added: 0019362
06-10-2019 15:23Hunter23071985Note Edited: 0019362bug_revision_view_page.php?bugnote_id=19362#r7487
06-10-2019 15:32Hunter23071985Note Edited: 0019362bug_revision_view_page.php?bugnote_id=19362#r7488
06-10-2019 17:17zedNote Added: 0019363
06-10-2019 17:31Hunter23071985Note Added: 0019364
06-10-2019 17:32Hunter23071985Note Edited: 0019364bug_revision_view_page.php?bugnote_id=19364#r7490
06-10-2019 17:49zedNote Added: 0019365
06-10-2019 18:20Hunter23071985Note Added: 0019366
06-10-2019 18:38zedNote Added: 0019367
06-10-2019 18:52Hunter23071985Note Added: 0019368
06-10-2019 19:06Hunter23071985Note Edited: 0019368bug_revision_view_page.php?bugnote_id=19368#r7492
07-10-2019 12:05zedNote Added: 0019370
07-10-2019 13:40Hunter23071985Note Added: 0019373
07-10-2019 13:44Hunter23071985Note Edited: 0019373bug_revision_view_page.php?bugnote_id=19373#r7497
07-10-2019 17:41zedStatusassigned => resolved
07-10-2019 17:41zedFixed in Version => 191221
07-10-2019 17:41zedResolutionopen => fixed
11-10-2019 09:38zedNote Added: 0019377

Notes
(0009354)
Tolik   
09-10-2012 05:59   
ИМХО польза от такой функции меньше затраченных на неё усилий.
(а, вспомнил, это про овчинку :)
Также появится ещё одна непонятная иконка.

(0009365)
vdemidov   
09-10-2012 06:46   
Ну усилий на реализацию этой функции потратится очень немного, особенно после добавления Zed-ом функций проецирования точки. Так что в принципе сделать можно.
(0009713)
rass   
23-10-2012 10:55   
нашел! уже почти такая функция есть - "Выделение по пути".
только возможность ввода радиуса происходит при указании более одной точки пути.
А можно сделать так, чтобы функция работала уже с указанием первой точки и возможностью ей же ограничить путь, а направление (тоесть ориентировать квадрат выделение) по умолчанию на север?
(0009777)
rass   
29-10-2012 15:12   
Хотелка свелась к следущему существующему решению:
1. Устанавливаю максимальный зум (уровень) на нужном объекте.
2. Выбираю инструмент "Выделение по пути"
3. Указываю как можно близко две точки пути, и так чтобы напарвление было ортогональное (то есть либо вертикальное либо горизонтальное, чтобы стороны квдрата выделения были в такомже направлении)
4. указываю радиус выделения.
5. получаю результат Хотелки.

Большое спасибо за развитие программы.
Эту хотелку, если нет возможности, как было выше описано, усовршенствовать инструмент "Выделение по пути", можно закрыть.

Методику и результат в картинках прикрепил.
(0019353)
zed   
06-10-2019 10:06   
Сейчас, если поставить метку и вызвать для неё всплывающее меню, то там можно выбрать пункт "Операция с выделенной областью", после чего появляется диалог задания радиуса и создаётся окружность. Так вот, для реализации данной хотелки планирую добавить в этот диалог переключатель окружность/квадрат чтобы можно было выбрать, какое выделение генерировать.
(0019354)
zed   
06-10-2019 12:15   
Хм, есть 2 варианта реализации:

1) от центральной точки отложить отрезки R в четыре стороны (с азимутом 0, 90, 180, 270) и взять ограничивающие координаты. При этом визуально в SAS получается ровненький квадратик, но реально, на поверхности Земли, это будет трапеция сужающаяся кверху (можно хорошо увидеть, если R несколько сот км и открыть в GoogleEath). Условно говоря, ширина верхней стороны получается 0,9*2R, ширина по центру равна 2R, ширина нижней стороны равна 1,1*2R. При этом высота всегда равна 2R.

2) от центра отложить отрезки R вверх и вниз, а затем из каждой из точек отложить отрезки R вправо и влево, получив координаты углов. При этом, визуально в SAS получается трапеция, сужающаяся книзу, но реально, на поверхности Земли, получается что-то похожее на квадрат, со сторонами 2R.

Примеры вот тут (радиус 300 км от центральной точки): https://drop.me/B4KWbE (скриншот из GE: http://prntscr.com/pfiwoo)

Какой вариант делать? По идее, вариант 2 должен давать большую точность, с точки зрения покрытия площади, с другой стороны, SAS не сможет склеить трапецию и выходной файл всё равно будет прямоугольным, но при загрузке, по краям будет лесенка из незагруженных тайлов. И в связи с этим, я склоняюсь к варианту 1.
(0019355)
zed   
06-10-2019 12:27   
В принципе, оно можно и оба варианта реализовать - кто создаёт область для закачки, воспользуется первым вариантом, а кому нужна именно геометрия - вторым. Самое трудное будет только подобрать названия для этих вариантов.

(0019356)
Hunter23071985   
06-10-2019 13:17   
(edited on: 06-10-2019 13:28)
Не могу скачать (502 Bad Gateway), но скриншоты и описание не comme il faut.
Можно ли использовать решение Винсенти, дающее точность ±0,5 мм?
Если честно, тут есть сомнения, ибо сам WGS-84 определён с точностью ±1 м.
Но реализация очень эффективна в плане скорости и ресурсоёмкости:
5-10 микросекунд с использованием Chrome на среднем ПК с Core i5.
По ссылке дан e-mail автора, код JavaScript, документация и набор тестов.

(0019357)
zed   
06-10-2019 13:33   
Прикрепил kmz к тикету.

У GeographicLib точность вообще нанометрами измеряется, если верить вот этому.

А алгоритм Винсента у нас использовался до внедрения GeographicLib и он всё ещё остался, на всякий случай. Если вы удалите geodesic.dll из папки с программой, то начнёт работать алгоритм Винсента. Но отказались мы от него, потому что он давал ошибки, на сколько я помню.
(0019358)
zed   
06-10-2019 13:36   
Да, тестовые kmz надо смотреть и производить измерения на картах Яндекса.
(0019359)
Hunter23071985   
06-10-2019 13:47   
(edited on: 06-10-2019 13:54)
Вообще надо проверить результаты по топосъёмкам/кад. выпискам/др. с точными координатами/размерами.
К сожалению, у меня нет ничего подходящего...
Оба варианта на картах Яндекса (z10) дают не квадратную картинку: 3475х3487 или 3735х3466.
Это не хорошо. И не ясно что, если понадобятся другие карты/спутники, кроме Яндекса?

(0019360)
zed   
06-10-2019 14:06   
Нужен квадратный растр? Как видно, в таком случае наилучший результат даёт вариант 1.

> И что, если понадобятся другие карты/спутники, кроме Яндекса?
Тогда будет построен полигон на другом эллипсоиде. И если склейка будет производиться на нём же, то будет всё аналогично.
(0019361)
zed   
06-10-2019 14:45   
Собрал тестовые бинарники: https://yadi.sk/d/IZWprSo2pS-OgQ

v1 - реализует первый вариант, v2 - второй. Кроме того, во втором варианте добавил генерирование ещё 4-х точек в полигон (верх, низ, право, лево).
(0019362)
Hunter23071985   
06-10-2019 15:21   
(edited on: 06-10-2019 15:32)
Для произвольной области 8х8 км:

SASPlanet.1616.v1.exe:
Спутник Yandex - 1485х1485 пикселей
Спутник Google - 1485х1489 пикселей (1489х1489 пикселей)

SASPlanet.1616.v2.exe:
Спутник Yandex - 1487х1485 пикселей
Спутник Google - 1487х1489 пикселей (1490х1489 пикселей)

В скобках - цифры после перестроения области выделения.
Визуально V1 аккуратнее, точность вынесем за скобки.
Но надо снять обязанность перестраивать область выделения,
используя информацию из zmp для пересчёта этой области.

(0019363)
zed   
06-10-2019 17:17   
Сделал гуй, ночная сборка выпущена, тестируйте.

> Но надо снять обязанность перестраивать область выделения, используя информацию из zmp для пересчёта этой области.

Совсем не понял о чём речь. Когда открывается окно Операций с выделенной областью, вы там можете её сохранить в метки и использовать впоследствии без всяких перестроений.

Кроме того, для теста я сейчас построил несколько раз область для одной и той же точки - результат всегда идентичен. Так что, расскажите подробно по шагам, что надо сделать, чтобы получить разные цифры.
(0019364)
Hunter23071985   
06-10-2019 17:31   
(edited on: 06-10-2019 17:32)
Воспроизвести легко: вот видео (https://cloud.mail.ru/public/CE9n/3zrdv1qkr),
47612х47611 - Google, 47612х47510 - Yandex просто при переключении карт.
Также в Generator Options нужна русификация и информация о точности квадрата.

(0019365)
zed   
06-10-2019 17:49   
Русификацию я забыл сразу закоммитить, перекачайте сборку ещё раз.

По поводу видео: это ожидаемое поведение, т.к. у этих карт разные модели Земли (сфера и эллипсоид), соответственно и разрешение растра (метр/пиксель) отличается.
(0019366)
Hunter23071985   
06-10-2019 18:20   
Спасибо за русификацию, скачаю позже.

По поводу квадрата: на видео задан квадрат 8х8 км, и он должен быть 8х8 км для всех карт.
Путь это будет 47612х47611 для одной карты, 47510х47510 для другой, но не 47612х47510.

По поводу точности: ни один из методов не идеален.
Пользователь должен хотя бы примерно знать значение погрешности для выбранного им квадрата и метода.
(0019367)
zed   
06-10-2019 18:38   
> он должен быть 8х8 км для всех карт
Нет, не должен. Повторяю: у разных карт, разные модели Земли. И квадрат мы строим для конкретной модели. Вот для неё (и всех карт которые её используют) и будет 8x8. Для других карт, с другой моделью, надо генерировать другой квадрат и в нём координаты углов будут отличаться от предыдущей. Но будет 8x8, только уже для этой модели.

> Пользователь должен хотя бы примерно знать значение погрешности для выбранного им квадрата и метода.
Что предлагаете?
(0019368)
Hunter23071985   
06-10-2019 18:52   
(edited on: 06-10-2019 19:06)
> Нет, не должен.
Уверяю Вас, обычный пользователь ничего не знает про модели Земли и знать не хочет!
Многие до сих пор считают, что Земля плоская: https://ru.wikipedia.org/wiki/Общество_плоской_Земли.
Раз SASPlanet позволяет сохранить один и тот же квадрат с разных источников, это должен быть один и тот же квадрат.

> Что предлагаете?
Рассчитать, хотя бы примерно - ±1 м(м2) для этого квадрата, ±0,05 м(м2) для другого.
В Haversine/Vincenty были соответствующие формулы, в GeographicLib не знаю.

(0019370)
zed   
07-10-2019 12:05   
Тут какое-то противоречие - а зачем обычному пользователю знание о точности измерений? Да я и не представляю как это вообще можно посчитать и где отобразить. Можете попробовать открыть отдельную хотелку. Это же касается и постоянстве размеров выделений для разных карт. Что же касается данной хотелки, то если нету замечаний по генерированию квадратов, считаем её выполненной.
(0019373)
Hunter23071985   
07-10-2019 13:40   
(edited on: 07-10-2019 13:44)
Эх, zed, страшно далеки Вы от народа. )))
Проектировщиком в не молодом коллективе уж точно не работали.
Вот нужны генпланистам ряд спутников и карт 8х8 км, они их скачают и всё!
Хотя как скачают, им и это то сложно - не могут запомнить, что к чему.
Уж точно никому и в голову не придёт перестраивать квадрат под каждую карту.
И, раз задавали 8х8 км, то значит это всегда 8*10^5х8*10^5 мм, хотя это не так.

Как минимум - добавьте в Generator Options примечания,
что квадрат не сверхточен и подлежит перестройке при выборе новой карты.

(0019377)
zed   
11-10-2019 09:38   
Hunter23071985
Только что закончил реализацию 0003564 и теперь, если вы в меню "Вид - Проекция" зададите какую-то конкретную проекцию (например, Mercator / WGS84) то при склейке любой карты вы будете автоматически получать одинаковое разрешение (естественно, только при условии, что не будете руками изменять настройку проекции на вкладке Склейка). Это же касается и любых измерений линейкой - она будет показывать одни и те же цифры, вне зависимости от выбранной карты. Такое поведение линейки было и раньше, просто обращаю внимание. Т.е. для обычного пользователя, который не хочет вникать в нюансы, достаточно один раз задать фиксированную проекцию и жить спокойно.