Udostępnij za pośrednictwem


Wielokąt

A Polygon jest dwuwymiarowych powierzchni przechowywane jako sekwencja punktów Definiowanie zewnętrznego pierścienia obwiedni i zero lub więcej pierścienie wewnętrzne. A Polygon mogą być tworzone wystąpienie z pierścienia, który ma co najmniej trzy różne punkty. A Polygon wystąpienie również może być pusta.

Zewnętrznej i wszystkie wewnętrzne pierścienie z Polygon Zdefiniuj jego obramowanie. Miejsce w obrębie pierścienie definiuje wnętrza Polygon. Wewnętrzne pierścienie z Polygon można edytować zarówno same i siebie na jednym tangens punkty, ale jeśli wewnętrzne pierścienie z Polygon skrzyżowania, wystąpienie jest nieprawidłowa.

Przykłady

Na poniższej ilustracji przedstawiono przykłady Polygon wystąpienia.

Examples of geometry Polygon instances

Jak pokazano na rysunku:

  1. Rysunek 1 jest Polygon wystąpienie, którego obramowanie jest definiowana przez zewnętrznego pierścienia.

  2. Rysunek 2 jest Polygon wystąpienie, którego obramowanie jest definiowana przez zewnętrzne pierścień i dwa wewnętrzne sygnałów. Obszar wewnątrz wewnętrzne pierścienie wchodzi w skład zewnętrznej powierzchni Polygon wystąpienie.

  3. Rysunek 3 jest prawidłowa Polygon wystąpienie, ponieważ jego wnętrza pierścienie przecinają się w jednym punkcie styczną.

The following example creates a simple geometryPolygon instance with a hole and SRID 10.

DECLARE @g geometry;
SET @g = geometry::STPolyFromText('POLYGON((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1))', 10);

Anwystąpienie that is not valid may be entered and converted to a valid geometry wystąpienie. W poniższym przykładzie Polygon, dzwonków wewnętrzne i zewnętrzne zachodzą na siebie i wystąpienie jest nieprawidłowy.

DECLARE @g geometry;
SET @g = geometry::Parse('POLYGON((1 0, 0 1, 1 2, 2 1, 1 0), (2 0, 1 1, 2 2, 3 1, 2 0))');

W poniższym przykładzie nieprawidłowe wystąpienie odbywa się z MakeValid().

SET @g = @g.MakeValid();
SELECT @g.ToString();

The geometry wystąpienie returned from the above example is a MultiPolygon.

MULTIPOLYGON (((2 0, 3 1, 2 2, 1.5 1.5, 2 1, 1.5 0.5, 2 0)), ((1 0, 1.5 0.5, 1 1, 1.5 1.5, 1 2, 0 1, 1 0)))