Mam kilkaset kształty ( polygonS multipolygons) każda składająca się z dziesiątków tysięcy punktów, które staram się dostać do SQL 2008.
Niestety kształty, które próbowałem zaimportować, są „praworęczne” (obwód każdego z nich jest narysowany zgodnie z ruchem wskazówek zegara wokół zawartych w nim punktów). Serwer SQL przyjmuje kształty „leworęczne” (przeciwnie do ruchu wskazówek zegara wokół wnętrza), przynajmniej dla geographytypów. Oznacza to, że SQL zakłada, że próbuję wybrać całą ziemię oprócz mojego kształtu. Niektórzy opisują to jako kształty „na lewą stronę”.
Z MSDN , który frustrująco nie mówi, której orientacji pierścienia należy użyć:
Jeśli używamy
geographytypu danych do przechowywania instancji przestrzennej, musimy określić orientację pierścienia i dokładnie opisać lokalizację instancji.
Jeśli użyjesz niewłaściwej orientacji pierścienia w SQL 2008, ulega awarii z następującym błędem (wyróżnienie moje):
Wystąpił błąd programu .NET Framework podczas wykonywania procedury zdefiniowanej przez użytkownika lub agregacji „geografii”: Microsoft.SqlServer.Types.GLArgumentException: 24205: Podane dane wejściowe nie reprezentują prawidłowej instancji geograficznej, ponieważ przekraczają jedną półkulę. Każda instancja geograficzna musi mieścić się na jednej półkuli. Częstą przyczyną tego błędu jest niewłaściwa orientacja wielokąta.
Importowanie kształtów geometryzamiast geographydziała dobrze, ale chciałbym użyć, geographyjeśli mogę.
W SQL 2012 rozwiązanie tego problemu wydaje się dość trywialne , ale jestem przywiązany do 2008 roku.
Jak konwertować kształty?