Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

'L'input specificato non rappresenta un'istanza geografica valida' quando si usa SqlGeographyBuilder

Ho avuto lo stesso errore, ma si è rivelato essere un problema di orientamento dell'anello del poligono. Una semplice questione di capovolgere l'ordine degli array di coordinate ha risolto il problema.

Per illustrare, questo non riesce con l'errore precedente:

 select geography::STGeomFromText ('Polygon  ( (10 10, 10 20, 20 20, 20 10, 10 10))',4326)

mentre funziona:

 select geography::STGeomFromText ('Polygon  ( (10 10, 20 10, 20 20, 10 20, 10 10))',4326)

Nota che non sto capovolgendo le coppie x,y all'interno di un punto, sto capovolgendo l'ordine dell'intero array di punti (ad es. {pt1, pt2, pt3, pt4, pt5} diventa {pt5, pt4, pt3, pt2, pt1 }