SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002707 | SAS.Планета | [All Projects] Баг | public | 30-04-2015 11:58 | 18-05-2015 09:28 |
|
Reporter | Parasite | |
Assigned To | | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | confirmed | Resolution | open | |
Platform | | OS | | OS Version | |
Product Version | 141212 | |
Target Version | 50xxxx | Fixed in Version | | |
|
Summary | 0002707: Полигоны и пути пересекающие 180-й меридиан отображаются неправильно |
Description | При импорте полигонов, которые явно будут пересекать 180-й меридиан - они визуально рвутся. Аттач.
Надо что-то с этим сделать. :) |
Steps To Reproduce | 1. Скачать КМЛ границ стран (http://www.arcgis.com/home/item.html?id=7a8585998b7f470b85235dcdb560c7e2)
2. Импортнуть всё в САС пачкой
3. Обратить внимание на полигон n.175 (Россия) - Чукотка "оторвалась". |
Additional Information | |
Tags | No tags attached. |
Relationships | related to | 0002487 | confirmed | | Закольцовка карты по горизонтали, чтобы восточное полушарие без разрыва переходило в западное |
|
Attached Files | poly.png (806,822) 30-04-2015 11:58 http://www.sasgis.org/mantis/file_download.php?file_id=1870&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
30-04-2015 11:58 | Parasite | New Issue | |
30-04-2015 11:58 | Parasite | File Added: poly.png | |
30-04-2015 12:01 | vdemidov | Note Added: 0015794 | |
30-04-2015 12:03 | vdemidov | Relationship added | parent of 0002487 |
30-04-2015 12:07 | vasketsov | Note Added: 0015795 | |
30-04-2015 12:10 | Parasite | Note Added: 0015796 | |
30-04-2015 13:06 | vdemidov | Note Added: 0015797 | |
30-04-2015 15:31 | vasketsov | Note Added: 0015798 | |
03-05-2015 07:09 | vdemidov | Relationship replaced | related to 0002487 |
05-05-2015 07:13 | vdemidov | Status | new => confirmed |
05-05-2015 07:13 | vdemidov | Product Version | .Nightly => 141212 |
05-05-2015 07:13 | vdemidov | Target Version | => 151010 |
05-05-2015 07:13 | vdemidov | Summary | Рвутся полигоны => Полигоны и пути пересекающие 180-й мередиан отображаются неправильно |
05-05-2015 07:13 | vdemidov | Description Updated | bug_revision_view_page.php?rev_id=6572#r6572 |
15-05-2015 18:57 | Parasite | Description Updated | bug_revision_view_page.php?rev_id=6594#r6594 |
15-05-2015 18:58 | Parasite | Summary | Полигоны и пути пересекающие 180-й мередиан отображаются неправильно => Полигоны и пути пересекающие 180-й меридиан отображаются неправильно |
18-05-2015 09:28 | vdemidov | Target Version | 151010 => 50xxxx |
13-07-2019 14:30 | RIXXX | Issue cloned: 0003499 | |
Notes |
|
|
Не путай экватор со 180-м меридианом. |
|
|
|
Ну, тут или специальную обработку делать при переходе через границу карты при показе полигона, в итераторе, возможно расчёте площади и периметра и т.п. (потенциально более правильно, нежели второй вариант), или сразу же отделять всё лишнее и грузить как кусок мультиполигона (заранее предполагая, что граница карты вечная и никогда не изменится, что конечно же проще), или вообще забить (что ещё проще). |
|
|
|
Ээээ.....не путаю. Где-то выше было упоминание экватора и\или 180го меридиана? Я сказал "сторона экрана" (визуально) и "координата" (в полигоне).
Имхо, надо бы проверку при отрисовке полигона - если там встречается явный перехлест по данному типу, нужно как-то визуально рвать и отрисовывать как два, что ли....Вот навскидку даже решение не придумывается. Но оно, как тот суслик - должно где-то быть. :) |
|
|
|
Как ты предлагаешь отличать случаи когда пользователь таки хочет получить весь мир? Например по Ctrl-A генерируется прямоугольник на весь мир и он должен быть именно таким, а не тонюсеньким вертикальным прямоугольничком? |
|
|
|
>по Ctrl-A генерируется прямоугольник на весь мир
Ну, если не фантазировать на тему фиксирования направления обхода, то тривиальное простое решение - генерировать прямоугольник от -180+0 до +180-0. Соответственно, при переходе от -180+0 к +180-0 через 0 получаем, что перехода через -180 и +180 нет.
Более интересен технически другой момент: как отличить для некоторого острова на меридиане 180, нам надо именно его грузить (внутренность), или весь мир кроме него (исключая внутренность). Так что вполне может быть, что для конкретного полигона в общем случае потребуется вводить признак, где находится полигон относительно своей границы. Предположение, что он внутри (= меньше наружной части) не всегда оправдано. |
|