Benutzer mit den meisten Antworten
Geometry Punkte aus Tabelle zu Linestring machen

Frage
-
Hallo Zusammen,
ich habe in einer Tabelle Punkte
insert into @tmp values (0x00000000010C00000000000008400000000000000000) insert into @tmp values (0x00000000010C0A8A9E4C3979AA3C0000000000000840) insert into @tmp values (0x00000000010C00000000000008C00A8A9E4C3979BA3C) insert into @tmp values (0x00000000010C88E776F9EADAC3BC00000000000008C0)
diese möchte ich jetzt gerne zu einem Linestring verbinden.
Geht das irgendwie? Meine Versuche sind bis jetzt gescheitert.
Viele Grüße
Anna
Antworten
-
Hallo Anna,
so solltest Du es hin bekommen:
-- Tabellenvariable erstellen und mit Punkten füllen DECLARE @tmp AS TABLE (point geometry); insert into @tmp values (0x00000000010C00000000000008400000000000000000); insert into @tmp values (0x00000000010C0A8A9E4C3979AA3C0000000000000840); insert into @tmp values (0x00000000010C00000000000008C00A8A9E4C3979BA3C); insert into @tmp values (0x00000000010C88E776F9EADAC3BC00000000000008C0); -- Kontrollausgabe SELECT *, point.ToString() as PointString FROM @tmp; -- Alle Punkte als komma-separierte Liste DECLARE @string varchar(200); SET @string = ''; SELECT @string = @string + SUBSTRING(point.ToString(), 8, LEN(point.ToString()) - 8) + ', ' FROM @tmp; -- Hängendes Komma entfernen SET @string = LEFT(@string, LEN(@string) - 1); -- Kontrollausgabe PRINT @string; -- Ausgabe als LineString SELECT geometry::STGeomFromText('LINESTRING(' + @string + ')', 0)
Ergebnis:
Olaf Helper
Blog Xing- Als Antwort vorgeschlagen Ionut DumaModerator Freitag, 22. März 2013 16:13
- Als Antwort markiert Ionut DumaModerator Dienstag, 26. März 2013 13:55
Alle Antworten
-
Hallo Anna,
Was für Punkte sind diese?
Schau Dir mal folgenden Links an http://msdn.microsoft.com/en-us/library/bb964737.aspx
http://msdn.microsoft.com/en-us/library/bb895372.aspx
Gruss,
Ionut -
Hallo Anna,
so solltest Du es hin bekommen:
-- Tabellenvariable erstellen und mit Punkten füllen DECLARE @tmp AS TABLE (point geometry); insert into @tmp values (0x00000000010C00000000000008400000000000000000); insert into @tmp values (0x00000000010C0A8A9E4C3979AA3C0000000000000840); insert into @tmp values (0x00000000010C00000000000008C00A8A9E4C3979BA3C); insert into @tmp values (0x00000000010C88E776F9EADAC3BC00000000000008C0); -- Kontrollausgabe SELECT *, point.ToString() as PointString FROM @tmp; -- Alle Punkte als komma-separierte Liste DECLARE @string varchar(200); SET @string = ''; SELECT @string = @string + SUBSTRING(point.ToString(), 8, LEN(point.ToString()) - 8) + ', ' FROM @tmp; -- Hängendes Komma entfernen SET @string = LEFT(@string, LEN(@string) - 1); -- Kontrollausgabe PRINT @string; -- Ausgabe als LineString SELECT geometry::STGeomFromText('LINESTRING(' + @string + ')', 0)
Ergebnis:
Olaf Helper
Blog Xing- Als Antwort vorgeschlagen Ionut DumaModerator Freitag, 22. März 2013 16:13
- Als Antwort markiert Ionut DumaModerator Dienstag, 26. März 2013 13:55