Anonymous
География Преобразование LINESTRING в POLYGON
Сообщение
Anonymous » 22 окт 2025, 21:52
Как преобразовать замкнутую строку строки в полгион для географии с помощью MS SQL или C#. Я пытаюсь собрать эти данные, чтобы иметь возможность искать данные в базе данных MS SQL. Когда я пытаюсь преобразовать данные с помощью функции STGeomFromWKB, она не вернула правильную форму.
Код: Выделить всё
DECLARE @data geography;
SET @data= 'LINESTRING(145.13527778 13.64166667, 144.74694444 13.47666667, 144.63722222 13.51194444, 144.61944444 13.5875, 144.62337227 13.60962359, 144.62777753 13.63154738, 144.63412072 13.65301205, 144.64235403 13.6738541, 144.65241522 13.69391474, 144.66422807 13.71304108, 144.67770294 13.73108731, 144.69273746 13.74791585, 144.70921729 13.76339835, 144.72701699 13.7774167,144.74600098 13.78986396,144.76602456 13.80064514,144.78693505 13.80967796,144.80857293 13.81689348,144.83077307 13.82223661,144.85336602 13.82566656,144.87617929 13.82715716,144.8990387 13.826697,144.92176971 13.82428962,144.94419878 13.81995338,144.96615467 13.8137214,144.98746983 13.80564125,145.0079816 13.79577461,145.02753354 13.78419678,145.0459766 13.77099612,145.06317023 13.75627335,145.07898353 13.74014079,145.09329617 13.7227215,145.10599934 13.70414829,145.1169966 13.68456278,145.12620454 13.66411424, 145.13355348 13.64295851, 145.13527778 13.64166667)';
--This shape looks like this
Код: Выделить всё
select @data, @data.STAsText()
--Convert to polygon it
DECLARE @Polygon geography
SET @Polygon = geography::STGeomFromWKB( 0x01 + 0x03000000 + 0x01000000 + SUBSTRING(@data.STAsBinary(),6,datalength(@data.STAsBinary())),@data.STSrid)
select @Polygon
Результат неправильный, как показано ниже.
Подробнее здесь:
https://stackoverflow.com/questions/489 ... to-polygon
1761159138
Anonymous
Как преобразовать замкнутую строку строки в полгион для географии с помощью MS SQL или C#. Я пытаюсь собрать эти данные, чтобы иметь возможность искать данные в базе данных MS SQL. Когда я пытаюсь преобразовать данные с помощью функции STGeomFromWKB, она не вернула правильную форму. [code]DECLARE @data geography; SET @data= 'LINESTRING(145.13527778 13.64166667, 144.74694444 13.47666667, 144.63722222 13.51194444, 144.61944444 13.5875, 144.62337227 13.60962359, 144.62777753 13.63154738, 144.63412072 13.65301205, 144.64235403 13.6738541, 144.65241522 13.69391474, 144.66422807 13.71304108, 144.67770294 13.73108731, 144.69273746 13.74791585, 144.70921729 13.76339835, 144.72701699 13.7774167,144.74600098 13.78986396,144.76602456 13.80064514,144.78693505 13.80967796,144.80857293 13.81689348,144.83077307 13.82223661,144.85336602 13.82566656,144.87617929 13.82715716,144.8990387 13.826697,144.92176971 13.82428962,144.94419878 13.81995338,144.96615467 13.8137214,144.98746983 13.80564125,145.0079816 13.79577461,145.02753354 13.78419678,145.0459766 13.77099612,145.06317023 13.75627335,145.07898353 13.74014079,145.09329617 13.7227215,145.10599934 13.70414829,145.1169966 13.68456278,145.12620454 13.66411424, 145.13355348 13.64295851, 145.13527778 13.64166667)'; --This shape looks like this [/code] [img]https://i.sstatic.net/kYmGF.png[/img] [code] select @data, @data.STAsText() --Convert to polygon it DECLARE @Polygon geography SET @Polygon = geography::STGeomFromWKB( 0x01 + 0x03000000 + 0x01000000 + SUBSTRING(@data.STAsBinary(),6,datalength(@data.STAsBinary())),@data.STSrid) select @Polygon [/code] Результат неправильный, как показано ниже. [img]https://i.sstatic.net/KdnwY.png[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/48955884/geography-convert-linestring-to-polygon[/url]