Aracılığıyla paylaş


MultiLineString

A MultiLineString is a collection of zero or more geometry or geographyLineString instances.

MultiLineString örnekleri

Örnek olarak aşağıdaki çizimde gösterilmektedir MultiLineString örnekleri.

Geometri MultiLineString örnekleri

Çizimde gösterildiği gibi:

  • Şekil 1'dir, basit bir MultiLineString , görür, iki dört bitiş noktaları örnek LineString öğeleri.

  • Şekil 2'dir, basit bir MultiLineString çünkü örnek yalnızca bitiş noktaları LineString öğeleri kesişen.Üst üste iki uç görür.

  • Şekil 3 olan bir nonsimple MultiLineString çünkü örnek bir iç, LineString öğeleri kesişen.Bu sınırı MultiLineString örnek olan dört bitiş noktaları.

  • Şekil 4 olan bir nonsimple, nonclosed MultiLineString örnek.

  • Şekil 5'tir, basit, nonclosed MultiLineString.Çünkü kapalı değil, LineStrings öğeler kapatılmadı.Basit çünkü herhangi bir evin İçindekiler hiçbiri LineStrings örnekleri kesişen.

  • Şekil 6 olan basit bir kapalı MultiLineString örnek.Tüm öğeleri kapatıldığından kapalı.Evin İçindekiler alt öğelerin hiçbiri kesişen çünkü basit bir işlemdir.

Kabul edilen örnekleri

İçin bir MultiLineString örnek , ya da boş ya da olmalı, comprised yalnızca kabul edilmesi için LineString kabul edilen intances.Daha fazla bilgi için kabul LineString örnekleri için bkz: LineString.Aşağıdaki örnekler kabul edilen MultiLineString örnekleri.

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';

Aşağıdaki örnek oluşturduğunu bir System.FormatException çünkü ikinci LineString örneği geçerli değil.

DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';

Geçerli örneği

İçin bir MultiLineString şu ölçüte uymalıdır geçerli olması için örnek:

  1. Tüm örneklerini kapsayan MultiLineString örnek geçerli olması gereken LineString örnekleri.

  2. Hiçbir iki LineString kapsayan örnekler MultiLineString örnek üst üste üzerinden bir aralığı.The LineString instances can only intersect or touch themselves or other LineString instances at a finite number of points.

Aşağıdaki örnek, üç geçerli gösterir MultiLineString örnekleri ve bir MultiLineString , geçersiz örneği.

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();

@g4geçerli değil çünkü ikinci LineString ilk örneği çakışıyor LineString örnek bir aralığı.Bunlar, sonsuz sayıda noktaları dokunma.

Örnekler

The following example creates a simple geometryMultiLineString instance containing two LineString elements with the SRID 0.

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

Farklı SRID ile bu örnek örneğini başlatmak için STGeomFromText() veya STMLineStringFromText().Ayrıca Parse() ve sonra SRID gibi gösterilen aşağıdaki örnek.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;