Nie słyszałem o żadnych ograniczeniach rozmiaru LINESTRING (z pewnością nie tak krótkich jak 567 punktów).
Właśnie spróbowałem przykładu
DECLARE @geom GEOGRAPHY
SET @geom = GEOGRAPHY::STGeomFromText(
'LINESTRING (142.98873903132778 -11.006193013241768
, 142.9891970000001 -11.005916999999954
-- SNIP 1,119 points
, 142.04362479801711 -11.629451936538608 )', 4326)
SELECT @geom, @geom.STNumPoints()
który działał dobrze (tworzy LINESTRING i liczy 1122 punkty).
Czy Twój przykład zawodzi z DOWOLNYMI 567 punktami - czy tylko określonym zestawem punktów (czy możesz się nimi z nami podzielić?). Myślę, że zastanawiam się, czy twój 568 punkt sprawia, że twoja instancja GEOGRAFII jest większa niż półkula? Na przykład, jeśli zmienię swój przykład, dodając kolejny punkt (0,0), co wymusza zbyt dużą GEOGRAFIĘ:
DECLARE @geom GEOGRAPHY
SET @geom = GEOGRAPHY::STGeomFromText(
'LINESTRING (142.98873903132778 -11.006193013241768
, 142.9891970000001 -11.005916999999954
-- SNIP 1,119 points
, 142.04362479801711 -11.629451936538608
, 0 0 )', 4326) -- ADDED ANOTHER POINT !
SELECT @geom, @geom.STNumPoints()
Otrzymuję ArgumentException 24205:Określone dane wejściowe nie reprezentują prawidłowego wystąpienia geograficznego, ponieważ przekraczają jedną półkulę. Każda instancja geografii musi mieścić się na jednej półkuli. Częstą przyczyną tego błędu jest zła orientacja pierścienia wielokąta. co oczywiście nie jest dokładnie tym samym błędem tak jak ty - ale pomyślałem, że i tak to podniosę [Przejdź do UPDATE na końcu, aby uzyskać lepszy pomysł]
Moje drugie pytanie do ciebie brzmi:czy to działa z typem danych GEOMETRIA? Np. jeśli zmienię mój "łamliwy" przykład powyżej, aby użyć GEOMETRII, to działa dobrze:
DECLARE @geom GEOMETRY -- using GEOMETRY type instead
SET @geom = GEOMETRY::STGeomFromText(
'LINESTRING (142.98873903132778 -11.006193013241768
, 142.9891970000001 -11.005916999999954
-- SNIP 1,119 points
, 142.04362479801711 -11.629451936538608
, 0 0 )', 4326) -- THIS POINT BREAKS GEOGRAPHY but works now!
SELECT @geom, @geom.STNumPoints()
Jeśli możesz opublikować więcej szczegółów na temat konkretnego problemu, może to sugerować przyczynę problemu. Czy możesz również dodać, czy wprowadzasz punkty w SQL Management Studio, czy za pomocą kodu (czy jest to zestaw typów danych C# i SQL)? Jaki jest pełny tekst komunikatu o błędzie, który otrzymasz (jeśli jest więcej niż to, co zacytowałeś powyżej - zobacz mój błąd).
Ale krótka odpowiedź brzmi:„Nie sądzę, że istnieje limit 567 punktów”.
AKTUALIZACJA: Post Eda zawiera dokładny błąd, który otrzymasz (System.ArgumentException:24200) - więc jeśli możesz zamiast tego uzyskać dane działające w GEOMETRII, warto spróbować: