Cree un círculo de polígonos de SqlGeography desde un centro y un radio

Me gustaría guardar un círculo en un campo de geografía de SQL Server 2008 usando c #.

En c # tengo una latitud, una longitud y un radio, pero simplemente no puedo encontrar una manera de calcular el polígono que representaría el círculo y crear unSqlGeography de eso.

He intentado seguir la función para crear el polígono:

    private List<Coordinate> getCirclePoints(Coordinate center, int radius, int speed)  //speed 1: draws 360 sides, 2 draws 180 etc...
    {
        var centerLat = (center.Latitude * Math.PI) / 180.0;  //rad
        var centerLng = (center.Longitude * Math.PI) / 180.0; //rad
        var dist = (float)radius / 6371.0;             //d = angular distance covered on earth's surface
        var circlePoints = new List<Coordinate>();
        for (int x = 0; x <= 360; x += speed)
        {
            var brng = x * Math.PI / 180.0;         //rad
            var latitude = Math.Asin(Math.Sin(centerLat) * Math.Cos(dist) + Math.Cos(centerLat) * Math.Sin(dist) * Math.Cos(brng));
            var longitude = ((centerLng + Math.Atan2(Math.Sin(brng) * Math.Sin(dist) * Math.Cos(centerLat), Math.Cos(dist) - Math.Sin(centerLat) * Math.Sin(latitude))) * 180.0) / Math.PI;
            circlePoints.Add(new Coordinate((latitude * 180.0) / Math.PI, longitude));
        }
        return circlePoints;
    }

Y luego tratar de convertir estoList<Coordinate> a una cadena analizable:

        var s = "POLYGON((" + string.Join(",", points.ConvertAll(p => p.Longitude + " " + p.Latitude).ToArray()) + "))";
        var poly = SqlGeography.STPolyFromText(new System.Data.SqlTypes.SqlChars((SqlString)s), 4326);

Pero siempre se queja de que el polígono tiene que estar en un solo hemisferio, donde estoy seguro de que es el caso.

¿Estoy en el camino correcto? ¿Hay alguna otra forma (más simple) de hacer esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta