private void TestTrace()
        {
            SpatialTrace.Enable();

            SpatialTrace.TraceText("Simple geometries");
            SpatialTrace.Indent();

            SqlGeometry points = Sample_Points(4326);

            SpatialTrace.TraceGeometry(points, "Points");

            SqlGeometry poly = Sample_Polygon(4326);

            SpatialTrace.TraceGeometry(poly, "Polygon");

            SqlGeography geog = Sample_PolygonGeography();

            SpatialTrace.TraceGeometry(geog, "Polygon (geography)");

            SpatialTrace.Unindent();

            SpatialTrace.TraceText("Composite geometries");
            SpatialTrace.Indent();

            SpatialTrace.TraceGeometry(poly.STUnion(points), "poly.STUnion(points)");

            SpatialTrace.TraceGeometry(poly.STUnion(points).STConvexHull(), "poly.STUnion(points).STConvexHull()");

            SpatialTrace.Unindent();

            SpatialTrace.Disable();
        }
        private void TestCommunes()
        {
            List <SqlGeometry> geom = new List <SqlGeometry>();

            SpatialTrace.Enable();
            SpatialTrace.TraceText("Open DB connection");
            SpatialTrace.Indent();

            using (SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=SampleSpatialData;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False"))
            {
                con.Open();

                using (SqlCommand com = new SqlCommand("SELECT geom, INSEE_COM + ' ' + NOM_COM FROM dbo.COMMUNE --WHERE geom2154.STNumInteriorRing() > 0", con))
                {
                    int i = 0;

                    using (SqlDataReader reader = com.ExecuteReader())
                    {
                        SpatialTrace.TraceText("Reading results DB\t\t connection");
                        SpatialTrace.Indent();
                        while (reader.Read())
                        {
                            i++;

                            // workaround https://msdn.microsoft.com/fr-fr/library/ms143179(v=sql.120).aspx
                            // In version 11.0 only
                            SqlGeometry curGeom = SqlGeometry.Deserialize(reader.GetSqlBytes(0));

                            //// In version 10.0 or 11.0
                            //curGeom = new SqlGeometry();
                            //curGeom.Read(new BinaryReader(reader.GetSqlBytes(0).Stream));


                            geom.Add(curGeom);

                            SpatialTrace.SetFillColor(GetRandomColor());
                            SpatialTrace.SetLineColor(GetRandomColor());
                            SpatialTrace.SetLineWidth(GetRandomStrokeWidth());
                            SpatialTrace.TraceGeometry(curGeom, reader[1].ToString());
                        }

                        SpatialTrace.Unindent();
                    }
                }
            }

            SpatialTrace.Unindent();

            ((ISpatialViewer)viewer).SetGeometry(SqlGeomStyledFactory.Create(geom, null, null, null, "Sample"));
        }
示例#3
0
        private void VisuCercleCirconscritAuTriangle(double[] v_pointA, double[] v_pointB, double[] v_pointC, string p_message)
        {
            List <double[]> v_pointsTriangle;

            v_pointsTriangle = new List <double[]>();
            v_pointsTriangle.Add(v_pointA);
            v_pointsTriangle.Add(v_pointB);
            v_pointsTriangle.Add(v_pointC);
            //
            SpatialTrace.Enable();
            SpatialTrace.TraceText(p_message);
            Color param_couleurContour = Color.FromArgb(125, 125, 125);

            SpatialTrace.SetLineColor(param_couleurContour);

            Color     p_couleurCourante;
            int       p_taillePoint;
            IGeometry v_pointGeom;

            double[] v_pointCentre;
            double   v_rayon;

            v_pointCentre = FServicesApplicatifs.createCalculServicesLow_testDivers().GetCoordonneesCercleCirconscritAuTriangle(v_pointsTriangle);
            v_rayon       = Math.Sqrt(Math.Pow((v_pointA[0] - v_pointCentre[0]), 2) + Math.Pow((v_pointA[1] - v_pointCentre[1]), 2));
            //Cercle
            p_couleurCourante = Color.FromArgb(50, 50, 50);
            v_pointGeom       = FLabServices.createUtilitaires().ConstructPoint(v_pointCentre[0], v_pointCentre[1], 2154).Buffer(v_rayon);
            SpatialTrace.TraceGeometry(v_pointGeom, "Cercle", "Cercle");

            //Points du triangle
            p_taillePoint     = 5;
            p_couleurCourante = Color.FromArgb(255, 0, 0);
            SpatialTrace.SetFillColor(p_couleurCourante);
            v_pointGeom = FLabServices.createUtilitaires().ConstructPoint(v_pointA[0], v_pointA[1], 2154).Buffer(p_taillePoint);
            SpatialTrace.TraceGeometry(v_pointGeom, "Pt A", "Pt A");
            v_pointGeom = FLabServices.createUtilitaires().ConstructPoint(v_pointB[0], v_pointB[1], 2154).Buffer(p_taillePoint);
            SpatialTrace.TraceGeometry(v_pointGeom, "Pt B", "Pt B");
            v_pointGeom = FLabServices.createUtilitaires().ConstructPoint(v_pointC[0], v_pointC[1], 2154).Buffer(p_taillePoint);
            SpatialTrace.TraceGeometry(v_pointGeom, "Pt C", "Pt C");

            //Cercle
            p_taillePoint     = 8;
            p_couleurCourante = Color.FromArgb(0, 255, 0);
            SpatialTrace.SetFillColor(p_couleurCourante);
            v_pointGeom = FLabServices.createUtilitaires().ConstructPoint(v_pointCentre[0], v_pointCentre[1], 2154).Buffer(p_taillePoint);
            SpatialTrace.TraceGeometry(v_pointGeom, "Centre", "Centre");

            SpatialTrace.Disable();
            //
        }