Dlaczego prawidłowe wielokąty powtarzają ten sam punkt początkowy i końcowy?


18

W świecie GIS w przypadku większości współczesnych formatów i standardów (np. Shapefiles, WKB / WKT , GML, KML itp.) Prawidłowe wielokąty muszą mieć zamknięte pierścienie liniowe, co stanowi linię współrzędnych, w których pierwszy punkt jest powtórzeniem ostatniego punktu. Na przykład trójkąt wymaga czterech punktów (nie trzech).

POLYGON ((10 20, 30 60, 50 20, 10 20))

Trójkąt

Kto rozpoczął tę konwencję i dlaczego? Czy to jakaś spuścizna pamięci przed Shapefile? (np. w jaki sposób MS Windows nadal wykorzystuje 2-bajtowe znaki nowej linii CR + LF?) Inne standardy inne niż GIS (np. SVG ) nie wymagają tego powtarzania do kodowania wielokątów.

Odpowiedzi:


24

Konwencja ta powraca do branży geodezyjnej; która ma początek. Zaczynasz więc od punktu w przestrzeni, a ostatni punkt, do którego się odwołujesz, jest punktem końcowym. W ten sposób masz zamknięty obiekt.

Aby więc zbudować pełny obiekt COGO, musisz mieć pełny opis tego, co jest opisywane. Jest dokładniejszy niż przypuszczalne zamknięcie.


7
Jak mówi DEWright, podczas ankiety możesz zapewnić dokładność pomiarów, jeśli punkty początkowy i końcowy są takie same. Pozwala także systemom oznaczać nieprawidłowe wielokąty, jeśli nie są zamknięte, zamiast traktować je jako samozamykający się wielokąt, który po cichu popsułby takie rzeczy, jak obliczanie powierzchni.
MerseyViking

1
Oczywiście formalne tworzenie map i pomiary istniały znacznie dłużej niż komputery i formaty cyfrowe. Mogę sobie również wyobrazić rysownika rysującego kontur wielokąta i potrzebującego ostatniego punktu, aby narysować zamknięty pierścień liniowy.
Mike T

12

Kryteria poprawnych wielokątów są zdefiniowane w OGC „s Simple Feature dokumencie standardy * przestrzegane przez większość oprogramowania GIS i baz danych przestrzennych. Przyczyny wymagania dopasowania punktów początkowych i końcowych prawdopodobnie będą związane z koncepcją topologiczną zamkniętego zestawu .

Zasady prawidłowego wielokąta są następujące:

  1. Wieloboki są topologicznie zamknięte
  2. Granica wielokąta składa się z zestawu pierścieni liniowych, które tworzą jego granice zewnętrzne i wewnętrzne
  3. Żadne dwa pierścienie na krzyżu granicznym i pierścienie na granicy wielokąta nie mogą przecinać się w punkcie, ale tylko jako styczna
  4. Wielokąt nie może mieć linii cięcia, kolców ani nakłuć
  5. Wnętrze każdego wielokąta jest połączonym zestawem punktów
  6. Zewnętrzna część wielokąta z co najmniej jednym otworem nie jest połączona. Każdy otwór określa połączony element zewnętrzny.

Prawidłowe wielokąty

Prawidłowe wielokąty

Nieprawidłowe wielokąty

Nieprawidłowe wielokąty

** Jeśli OGC faktycznie udostępniał swoje standardowe dokumenty w Internecie, a nie w plikach PDF do pobrania, które wymagają kliknięcia umowy, mogą one być czytane częściej .. *


+1 Dobre wyjaśnienie, ale czy możesz mi powiedzieć, czy to prawidłowy wielokąt?
Kirk Kuykendall

2
@kirk this.isValid () = zależy od implementacji i tego, w jaki sposób wielokąt jest reprezentowany ...! barendgehrels.blogspot.com/2010/02/...
geographika

Świetny link. Może to powodować problemy dla osób migrujących z Sql Server do PostGIS.
Kirk Kuykendall

@ Kirk, byłoby miło, gdybyś pokazał, jak układane są pierścienie; czy jest to „współdziałająca z bananem” lista współrzędnych z jednym pierścieniem zewnętrznym, czy też jest to pierścień zewnętrzny z pierścieniem wewnętrznym, który dotyka pierścienia zewnętrznego tylko na jednym wierzchołku ?. Nawet przy tym odpowiedź na konkretne pytanie zależy od implementacji. Sprawdź uwagi Paula na temat ważności Polygon 2010.foss4g.org/presentations/3369.pdf
Ragi Yaser Burhum


-6

Nie ma dobrego powodu, tylko praktyka. Wieloboki to uwielbione linie.


Linia z praktyki jest kierunkowa; kontra wielokąt jest obszarem. Jest to więc znacznie głębsze niż „tylko praktyka”.
DEWright
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.