View Issue Details

IDProjectCategoryView StatusLast Update
0001616SAS.ПланетаХотелка / Feature requestpublic11-10-2019 09:38
Reporterrass Assigned Tozed  
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version110418 
Target Version191221Fixed in Version191221 
Summary0001616: Выделение квадратной области определяемый указанным радиусом вписанной окружности
DescriptionВыделение квадратной области определяемый указанным радиусом вписанной окружности.

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

Допустим, кликаю курсором по интересующему Месту и указываю расстояние вокруг которого следует выбрать(очердность такая не обязательна). Тем самым решаются проблемы с центрованием Места в выделении при исползовании инструмента Прямоугольная область. А также серия выделенний таким образм нескольких Мест всегда будет иметь одинаковые размеры. Да и масштаб картинки в дальнейшем всегда удоно вычеслить по стороне квадрата, а не как обычно сейчас приходится замерять расстояние между опорными точками попавшими в выделение.
TagsVIP
Attached Files
08-10-2012 20-31-08.jpg (74,641 bytes)   
08-10-2012 20-31-08.jpg (74,641 bytes)   
29-10-2012 16-55-40.jpg (18,996 bytes)   
29-10-2012 16-55-40.jpg (18,996 bytes)   
29-10-2012 17-02-16.jpg (251,656 bytes)   
29-10-2012 17-02-16.jpg (251,656 bytes)   
m.kmz (885 bytes)

Relationships

related to 0000663 resolvedzed Создание круглых областей заданного радиуса 
parent of 0001188 resolvedzed Алгоритм проецирования точки на эллипсоиде 
has duplicate 0001686 closedvdemidov Функция выделения области по центральной координате и размеру области 
has duplicate 0002296 closedvdemidov инцидент 0001686 не отработан 
related to 0002408 confirmed Возможность выделения прямоугольника по координатам центра и размерам в метрах 

Activities

Tolik

09-10-2012 05:59

manager   ~0009354

Last edited: 09-10-2012 05:59

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

vdemidov

09-10-2012 06:46

manager   ~0009365

Ну усилий на реализацию этой функции потратится очень немного, особенно после добавления Zed-ом функций проецирования точки. Так что в принципе сделать можно.

rass

23-10-2012 10:55

reporter   ~0009713

нашел! уже почти такая функция есть - "Выделение по пути".
только возможность ввода радиуса происходит при указании более одной точки пути.
А можно сделать так, чтобы функция работала уже с указанием первой точки и возможностью ей же ограничить путь, а направление (тоесть ориентировать квадрат выделение) по умолчанию на север?

rass

29-10-2012 15:12

reporter   ~0009777

Хотелка свелась к следущему существующему решению:
1. Устанавливаю максимальный зум (уровень) на нужном объекте.
2. Выбираю инструмент "Выделение по пути"
3. Указываю как можно близко две точки пути, и так чтобы напарвление было ортогональное (то есть либо вертикальное либо горизонтальное, чтобы стороны квдрата выделения были в такомже направлении)
4. указываю радиус выделения.
5. получаю результат Хотелки.

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

Методику и результат в картинках прикрепил.

zed

06-10-2019 10:06

manager   ~0019353

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

zed

06-10-2019 12:15

manager   ~0019354

Хм, есть 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.

zed

06-10-2019 12:27

manager   ~0019355

Last edited: 06-10-2019 12:27

В принципе, оно можно и оба варианта реализовать - кто создаёт область для закачки, воспользуется первым вариантом, а кому нужна именно геометрия - вторым. Самое трудное будет только подобрать названия для этих вариантов.

Hunter23071985

06-10-2019 13:17

reporter   ~0019356

Last edited: 06-10-2019 13:28

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

zed

06-10-2019 13:33

manager   ~0019357

Прикрепил kmz к тикету.

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

А алгоритм Винсента у нас использовался до внедрения GeographicLib и он всё ещё остался, на всякий случай. Если вы удалите geodesic.dll из папки с программой, то начнёт работать алгоритм Винсента. Но отказались мы от него, потому что он давал ошибки, на сколько я помню.

zed

06-10-2019 13:36

manager   ~0019358

Да, тестовые kmz надо смотреть и производить измерения на картах Яндекса.

Hunter23071985

06-10-2019 13:47

reporter   ~0019359

Last edited: 06-10-2019 13:54

Вообще надо проверить результаты по топосъёмкам/кад. выпискам/др. с точными координатами/размерами.
К сожалению, у меня нет ничего подходящего...
Оба варианта на картах Яндекса (z10) дают не квадратную картинку: 3475х3487 или 3735х3466.
Это не хорошо. И не ясно что, если понадобятся другие карты/спутники, кроме Яндекса?

zed

06-10-2019 14:06

manager   ~0019360

Нужен квадратный растр? Как видно, в таком случае наилучший результат даёт вариант 1.

> И что, если понадобятся другие карты/спутники, кроме Яндекса?
Тогда будет построен полигон на другом эллипсоиде. И если склейка будет производиться на нём же, то будет всё аналогично.

zed

06-10-2019 14:45

manager   ~0019361

Собрал тестовые бинарники: https://yadi.sk/d/IZWprSo2pS-OgQ

v1 - реализует первый вариант, v2 - второй. Кроме того, во втором варианте добавил генерирование ещё 4-х точек в полигон (верх, низ, право, лево).

Hunter23071985

06-10-2019 15:21

reporter   ~0019362

Last edited: 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 для пересчёта этой области.

zed

06-10-2019 17:17

manager   ~0019363

Сделал гуй, ночная сборка выпущена, тестируйте.

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

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

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

Hunter23071985

06-10-2019 17:31

reporter   ~0019364

Last edited: 06-10-2019 17:32

Воспроизвести легко: вот видео (https://cloud.mail.ru/public/CE9n/3zrdv1qkr),
47612х47611 - Google, 47612х47510 - Yandex просто при переключении карт.
Также в Generator Options нужна русификация и информация о точности квадрата.

zed

06-10-2019 17:49

manager   ~0019365

Русификацию я забыл сразу закоммитить, перекачайте сборку ещё раз.

По поводу видео: это ожидаемое поведение, т.к. у этих карт разные модели Земли (сфера и эллипсоид), соответственно и разрешение растра (метр/пиксель) отличается.

Hunter23071985

06-10-2019 18:20

reporter   ~0019366

Спасибо за русификацию, скачаю позже.

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

По поводу точности: ни один из методов не идеален.
Пользователь должен хотя бы примерно знать значение погрешности для выбранного им квадрата и метода.

zed

06-10-2019 18:38

manager   ~0019367

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

> Пользователь должен хотя бы примерно знать значение погрешности для выбранного им квадрата и метода.
Что предлагаете?

Hunter23071985

06-10-2019 18:52

reporter   ~0019368

Last edited: 06-10-2019 19:06

> Нет, не должен.
Уверяю Вас, обычный пользователь ничего не знает про модели Земли и знать не хочет!
Многие до сих пор считают, что Земля плоская: https://ru.wikipedia.org/wiki/Общество_плоской_Земли.
Раз SASPlanet позволяет сохранить один и тот же квадрат с разных источников, это должен быть один и тот же квадрат.

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

zed

07-10-2019 12:05

manager   ~0019370

Тут какое-то противоречие - а зачем обычному пользователю знание о точности измерений? Да я и не представляю как это вообще можно посчитать и где отобразить. Можете попробовать открыть отдельную хотелку. Это же касается и постоянстве размеров выделений для разных карт. Что же касается данной хотелки, то если нету замечаний по генерированию квадратов, считаем её выполненной.

Hunter23071985

07-10-2019 13:40

reporter   ~0019373

Last edited: 07-10-2019 13:44

Эх, zed, страшно далеки Вы от народа. )))
Проектировщиком в не молодом коллективе уж точно не работали.
Вот нужны генпланистам ряд спутников и карт 8х8 км, они их скачают и всё!
Хотя как скачают, им и это то сложно - не могут запомнить, что к чему.
Уж точно никому и в голову не придёт перестраивать квадрат под каждую карту.
И, раз задавали 8х8 км, то значит это всегда 8*10^5х8*10^5 мм, хотя это не так.

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

zed

11-10-2019 09:38

manager   ~0019377

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

Issue History

Date Modified Username Field Change
08-10-2012 17:32 rass New Issue
08-10-2012 17:32 rass File Added: 08-10-2012 20-31-08.jpg
09-10-2012 05:59 Tolik Note Added: 0009354
09-10-2012 05:59 Tolik Note Edited: 0009354
09-10-2012 06:46 vdemidov Note Added: 0009365
09-10-2012 06:49 vdemidov Relationship added parent of 0001188
09-10-2012 06:49 vdemidov Relationship added related to 0000663
09-10-2012 06:51 vdemidov Status new => confirmed
09-10-2012 06:52 vdemidov Product Version .Nightly => 110418
09-10-2012 06:52 vdemidov Target Version => 44xxxx
23-10-2012 10:55 rass Note Added: 0009713
29-10-2012 14:58 rass File Added: 29-10-2012 16-55-40.jpg
29-10-2012 15:12 rass Note Added: 0009777
29-10-2012 15:13 rass File Added: 29-10-2012 17-02-16.jpg
09-11-2012 21:06 vdemidov Relationship added has duplicate 0001686
24-12-2013 15:36 zed Relationship added related to 0002296
24-12-2013 16:05 vdemidov Relationship replaced has duplicate 0002296
16-04-2014 17:08 vdemidov Relationship added related to 0002408
06-10-2019 10:02 zed Assigned To => zed
06-10-2019 10:02 zed Status confirmed => assigned
06-10-2019 10:02 zed Target Version 44xxxx => 191221
06-10-2019 10:02 zed Summary Выделение квадратной области определяемый указанным радиусом вписанной окружности. => Выделение квадратной области определяемый указанным радиусом вписанной окружности
06-10-2019 10:03 zed Tag Attached: VIP
06-10-2019 10:06 zed Note Added: 0019353
06-10-2019 12:15 zed Note Added: 0019354
06-10-2019 12:27 zed Note Added: 0019355
06-10-2019 12:27 zed Note Edited: 0019355
06-10-2019 13:17 Hunter23071985 Note Added: 0019356
06-10-2019 13:21 Hunter23071985 Note Edited: 0019356
06-10-2019 13:24 Hunter23071985 Note Edited: 0019356
06-10-2019 13:26 zed File Added: m.kmz
06-10-2019 13:28 Hunter23071985 Note Edited: 0019356
06-10-2019 13:33 zed Note Added: 0019357
06-10-2019 13:36 zed Note Added: 0019358
06-10-2019 13:47 Hunter23071985 Note Added: 0019359
06-10-2019 13:49 Hunter23071985 Note Edited: 0019359
06-10-2019 13:54 Hunter23071985 Note Edited: 0019359
06-10-2019 14:06 zed Note Added: 0019360
06-10-2019 14:45 zed Note Added: 0019361
06-10-2019 15:21 Hunter23071985 Note Added: 0019362
06-10-2019 15:23 Hunter23071985 Note Edited: 0019362
06-10-2019 15:32 Hunter23071985 Note Edited: 0019362
06-10-2019 17:17 zed Note Added: 0019363
06-10-2019 17:31 Hunter23071985 Note Added: 0019364
06-10-2019 17:32 Hunter23071985 Note Edited: 0019364
06-10-2019 17:49 zed Note Added: 0019365
06-10-2019 18:20 Hunter23071985 Note Added: 0019366
06-10-2019 18:38 zed Note Added: 0019367
06-10-2019 18:52 Hunter23071985 Note Added: 0019368
06-10-2019 19:06 Hunter23071985 Note Edited: 0019368
07-10-2019 12:05 zed Note Added: 0019370
07-10-2019 13:40 Hunter23071985 Note Added: 0019373
07-10-2019 13:44 Hunter23071985 Note Edited: 0019373
07-10-2019 17:41 zed Status assigned => resolved
07-10-2019 17:41 zed Fixed in Version => 191221
07-10-2019 17:41 zed Resolution open => fixed
11-10-2019 09:38 zed Note Added: 0019377
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request