SASGIS - SAS.Планета
View Issue Details
0002707SAS.Планета[All Projects] Багpublic30-04-2015 11:5818-05-2015 09:28
Parasite 
 
normalminoralways
confirmedopen 
141212 
50xxxx 
0002707: Полигоны и пути пересекающие 180-й меридиан отображаются неправильно
При импорте полигонов, которые явно будут пересекать 180-й меридиан - они визуально рвутся. Аттач.
Надо что-то с этим сделать. :)
1. Скачать КМЛ границ стран (http://www.arcgis.com/home/item.html?id=7a8585998b7f470b85235dcdb560c7e2)
2. Импортнуть всё в САС пачкой
3. Обратить внимание на полигон n.175 (Россия) - Чукотка "оторвалась".
No tags attached.
related to 0002487confirmed  Закольцовка карты по горизонтали, чтобы восточное полушарие без разрыва переходило в западное 
png poly.png (806,822) 30-04-2015 11:58
http://bugtracker.sasgis.org/file_download.php?file_id=1870&type=bug
Issue History
30-04-2015 11:58ParasiteNew Issue
30-04-2015 11:58ParasiteFile Added: poly.png
30-04-2015 12:01vdemidovNote Added: 0015794
30-04-2015 12:03vdemidovRelationship addedparent of 0002487
30-04-2015 12:07vasketsovNote Added: 0015795
30-04-2015 12:10ParasiteNote Added: 0015796
30-04-2015 13:06vdemidovNote Added: 0015797
30-04-2015 15:31vasketsovNote Added: 0015798
03-05-2015 07:09vdemidovRelationship replacedrelated to 0002487
05-05-2015 07:13vdemidovStatusnew => confirmed
05-05-2015 07:13vdemidovProduct Version.Nightly => 141212
05-05-2015 07:13vdemidovTarget Version => 151010
05-05-2015 07:13vdemidovSummaryРвутся полигоны => Полигоны и пути пересекающие 180-й мередиан отображаются неправильно
05-05-2015 07:13vdemidovDescription Updatedbug_revision_view_page.php?rev_id=6572#r6572
15-05-2015 18:57ParasiteDescription Updatedbug_revision_view_page.php?rev_id=6594#r6594
15-05-2015 18:58ParasiteSummaryПолигоны и пути пересекающие 180-й мередиан отображаются неправильно => Полигоны и пути пересекающие 180-й меридиан отображаются неправильно
18-05-2015 09:28vdemidovTarget Version151010 => 50xxxx
13-07-2019 14:30RIXXXIssue cloned: 0003499

Notes
(0015794)
vdemidov   
30-04-2015 12:01   
Не путай экватор со 180-м меридианом.
(0015795)
vasketsov   
30-04-2015 12:07   
Ну, тут или специальную обработку делать при переходе через границу карты при показе полигона, в итераторе, возможно расчёте площади и периметра и т.п. (потенциально более правильно, нежели второй вариант), или сразу же отделять всё лишнее и грузить как кусок мультиполигона (заранее предполагая, что граница карты вечная и никогда не изменится, что конечно же проще), или вообще забить (что ещё проще).
(0015796)
Parasite   
30-04-2015 12:10   
Ээээ.....не путаю. Где-то выше было упоминание экватора и\или 180го меридиана? Я сказал "сторона экрана" (визуально) и "координата" (в полигоне).

Имхо, надо бы проверку при отрисовке полигона - если там встречается явный перехлест по данному типу, нужно как-то визуально рвать и отрисовывать как два, что ли....Вот навскидку даже решение не придумывается. Но оно, как тот суслик - должно где-то быть. :)
(0015797)
vdemidov   
30-04-2015 13:06   
Как ты предлагаешь отличать случаи когда пользователь таки хочет получить весь мир? Например по Ctrl-A генерируется прямоугольник на весь мир и он должен быть именно таким, а не тонюсеньким вертикальным прямоугольничком?
(0015798)
vasketsov   
30-04-2015 15:31   
>по Ctrl-A генерируется прямоугольник на весь мир
Ну, если не фантазировать на тему фиксирования направления обхода, то тривиальное простое решение - генерировать прямоугольник от -180+0 до +180-0. Соответственно, при переходе от -180+0 к +180-0 через 0 получаем, что перехода через -180 и +180 нет.

Более интересен технически другой момент: как отличить для некоторого острова на меридиане 180, нам надо именно его грузить (внутренность), или весь мир кроме него (исключая внутренность). Так что вполне может быть, что для конкретного полигона в общем случае потребуется вводить признак, где находится полигон относительно своей границы. Предположение, что он внутри (= меньше наружной части) не всегда оправдано.