public static GeoScene.Data.GSOPoint2d XYZ_2_Latlon(GSOPoint2d point2d)
        {
            int id = Utility.getProjectID();

            GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Inverse(point2d, id);
            return(result);
        }
        private GSOPoint2d Coord2LatLon(GeoScene.Data.GSOPoint2d pt2d)
        {
            int id = GeoScene.Data.GSOProjectManager.AddProject("+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=-50000 +y_0=-4210000 +ellps=krass +units=m +no_defs");

            GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Inverse(pt2d, id);
            return(result);
        }
Beispiel #3
0
        public static GeoScene.Data.GSOPoint2d Latlon_2_XYZ(double lon, double lat)
        {
            int id = GeoScene.Data.GSOProjectManager.AddProject(Utility.GetProjectName());

            GeoScene.Data.GSOPoint2d pt2d   = new GeoScene.Data.GSOPoint2d(lon, lat);
            GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Forward(pt2d, id);
            return(result);
        }
Beispiel #4
0
        public static GeoScene.Data.GSOPoint2d XYZ_2_Latlon(double x, double y)
        {
            int id = GeoScene.Data.GSOProjectManager.AddProject(Utility.GetProjectName());

            GeoScene.Data.GSOPoint2d pt2d   = new GeoScene.Data.GSOPoint2d(x, y);
            GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Inverse(pt2d, id);
            return(result);
        }
        public static GeoScene.Data.GSOPoint2d Latlon_2_XYZ(GSOPoint3d point3d)
        {
            int id = Utility.getProjectID();

            GeoScene.Data.GSOPoint2d point2d = new GeoScene.Data.GSOPoint2d(point3d.X, point3d.Y);
            GeoScene.Data.GSOPoint2d result  = GeoScene.Data.GSOProjectManager.Forward(point2d, id);
            return(result);
        }
        private GSOPoint2d LatLon2Coord(GeoScene.Data.GSOPoint2d pt2d)
        {
            int id = GeoScene.Data.GSOProjectManager.AddProject("+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=-50000 +y_0=-4210000 +ellps=krass +units=m +no_defs");

            //  GeoScene.Data.GSOProjectManager.SetCurProject(id);
            // double x = Convert.ToDouble(txtLong.Text);
            // double y = Convert.ToDouble(txtLat.Text);
            // GeoScene.Data.GSOPoint2d pt2d = new GeoScene.Data.GSOPoint2d(x, y);

            GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Forward(pt2d, id);
            return(result);
        }
        private void DrawCurveGraph(double a_x,double a_y)
        {
            // 遍历线,求距离
            table = new DataTable();
            //showTable.Columns.Clear();
            list.Clear();
            chart1.Series["管线"].Points.Clear();

            table.Columns.Add("编号", typeof(string));
            table.Columns.Add("管线类型", typeof(string));
            table.Columns.Add("管线编码", typeof(string));
            table.Columns.Add("管径_毫米", typeof(string));
            table.Columns.Add("材质", typeof(string));
            table.Columns.Add("管线埋深", typeof(string));

            object[,] sortIndex = new object[listPoint.Count, 2];
            for (int i = 0; i < listPoint.Count; i++)
            {
                GSOPoint3d geoPoint = (GSOPoint3d)listPoint[i];
                GSOFeature feature = listFeat[i] as GSOFeature;
                //坐标投影
                int id = GeoScene.Data.GSOProjectManager.AddProject("+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=555484.8092 +y_0=-4114948.631 +ellps=krass +units=m +no_defs");

                GeoScene.Data.GSOPoint2d a_Point = GeoScene.Data.GSOProjectManager.Forward(new GSOPoint2d(a_x, a_y), id);//user画的线的起始点

                GeoScene.Data.GSOPoint2d pt2d = new GeoScene.Data.GSOPoint2d(geoPoint.X, geoPoint.Y);
                GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Forward(pt2d, id);
                B_x = result.X;
                B_y = result.Y;

                double x = System.Math.Abs(B_x - a_Point.X);
                double y = System.Math.Abs(B_y - a_Point.Y);
                double Dis = Math.Round(Math.Sqrt(x * x + y * y) , 2);
                list.Add(geoPoint.Z);
                sortIndex[i, 0] = Dis;
                sortIndex[i, 1] = i;

                chart1.Series["管线"].Points.AddXY(Dis, geoPoint.Z);//绑定数据

                string pipeType = "";
                if (feature.GetFieldAsInt32("管线编码") >= 6000 && feature.GetFieldAsInt32("管线编码") <= 6203)  // 6100是热力管线的编码
                {
                    pipeType = "热力管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 4000 && feature.GetFieldAsInt32("管线编码") <= 4306)//排水
                {
                    pipeType = "排水管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 3000 && feature.GetFieldAsInt32("管线编码") <= 3513)  // 3000是给力管线的编码
                {
                    pipeType = "给水管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 1000 && feature.GetFieldAsInt32("管线编码") <= 1808)  // 电力管线的编码
                {
                    pipeType = "电力管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 2000 && feature.GetFieldAsInt32("管线编码") <= 2300)  // 通信管线的编码
                {
                    pipeType = "通信管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 5000 && feature.GetFieldAsInt32("管线编码") <= 5200)  // 通信管线的编码
                {
                    pipeType = "燃气管线";
                }
                string number = Convert.ToString(i + 1);

                string material = feature.GetFieldAsString("材质");
                string diameter = feature.GetFieldAsString("管径_毫米");
                table.Rows.Add(new object[] { number, pipeType, feature.Name.ToString(), diameter, material,Convert.ToDecimal(list[i].ToString()).ToString("f2")});//list[i].ToString().Substring(0,list[i].ToString().IndexOf('.')+3) }

                //chart1.Series["管线"].Points[i].Label = number;//管线的标签
                chart1.Series["管线"].Points[i].LegendText = number;
                if (feature.Geometry.Style.GetType() == typeof(GSOPipeLineStyle3D))
                {
                    GSOPipeLineStyle3D style = (GSOPipeLineStyle3D)feature.Geometry.Style;
                    chart1.Series["管线"].Points[i].MarkerBorderColor = style.LineColor;     //点的填充色
                }
                else
                {
                    chart1.Series["管线"].Points[i].MarkerBorderColor = Color.Black;
                }

                chart1.Series["管线"].Points[i].MarkerBorderWidth = 3;        //边框的宽度
                chart1.Series["管线"].Points[i].MarkerColor = Color.Transparent;
                chart1.Series["管线"].Points[i].MarkerSize = Convert.ToInt32(Math.Floor((feature.GetFieldAsDouble("管径_毫米") / 0.35 + chart1.Series["管线"].Points[i].MarkerBorderWidth) / 25.0));//点的大小

            }

            string htmlCode = "<html><head><style>#hor-minimalist-b " +
                        "{-moz-background-clip:border;" +
                                "-moz-background-inline-policy:continuous;" +
                                    "-moz-background-origin:padding;" +
                                    "background:#FFFFFF none repeat scroll 0 0;" +
                                    "border-collapse:collapse;" +
                                    "font-family:'Lucida Sans Unicode','Lucida Grande',Sans-Serif;" +
                                   " font-size:12px;" +
                                   " margin:10px;" +
                                   " text-align:left;" +
                                   " width:80%;" +
                                   " }" +
                                   " #hor-minimalist-b th {" +
                                   " border-bottom:2px solid #6678B1;" +
                                   " color:#003399;" +
                                   " font-size:12px;" +
                                "font-weight:normal;" +
                                  "  padding:10px 8px;" +
                                   " }" +
                                  "  #hor-minimalist-b td {" +
                                   " border-bottom:1px solid #CCCCCC;" +
                                   " font-size:12px;" +
                                   " color:#666699;" +
                                "padding:6px 8px;}" +
                                "#hor-minimalist-b tbody tr:hover td {" +
                                "color:#000099;}" +
                                "</style></head>" +
                        "<body style='border:none;' ><table align='center' summary='Employee Pay Sheet' id='hor-minimalist-b'><thead><tr><th scope='col'>管线类型</th><th scope='col'>管线编码</th><th scope='col'>管径_毫米</th>" +
                                        "<th scope='col'>材质</th><th scope='col'>管线埋深</th></tr></thead>" +
                                        "<tbody><tr><td>" +
                                        "</td><td>" +
                                        "</td><td>" +
                                        "</td><td>" +
                                        "</td><td>" +
                                        "</td></tr></tbody></table></body><ml>";
            webBrowser1.DocumentText = htmlCode;
        }
Beispiel #8
0
        private void DrawCurveGraph(double a_x, double a_y)
        {
            // 遍历线,求距离
            table = new DataTable();
            //showTable.Columns.Clear();
            list.Clear();
            chart1.Series["管线"].Points.Clear();

            table.Columns.Add("编号", typeof(string));
            table.Columns.Add("管线类型", typeof(string));
            table.Columns.Add("管线编码", typeof(string));
            table.Columns.Add("管径_毫米", typeof(string));
            table.Columns.Add("材质", typeof(string));
            table.Columns.Add("管线埋深", typeof(string));

            object[,] sortIndex = new object[listPoint.Count, 2];
            for (int i = 0; i < listPoint.Count; i++)
            {
                GSOPoint3d geoPoint = (GSOPoint3d)listPoint[i];
                GSOFeature feature  = listFeat[i] as GSOFeature;
                //坐标投影
                int id = GeoScene.Data.GSOProjectManager.AddProject("+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=555484.8092 +y_0=-4114948.631 +ellps=krass +units=m +no_defs");

                GeoScene.Data.GSOPoint2d a_Point = GeoScene.Data.GSOProjectManager.Forward(new GSOPoint2d(a_x, a_y), id);//user画的线的起始点

                GeoScene.Data.GSOPoint2d pt2d   = new GeoScene.Data.GSOPoint2d(geoPoint.X, geoPoint.Y);
                GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Forward(pt2d, id);
                B_x = result.X;
                B_y = result.Y;

                double x   = System.Math.Abs(B_x - a_Point.X);
                double y   = System.Math.Abs(B_y - a_Point.Y);
                double Dis = Math.Round(Math.Sqrt(x * x + y * y), 2);
                list.Add(geoPoint.Z);
                sortIndex[i, 0] = Dis;
                sortIndex[i, 1] = i;

                chart1.Series["管线"].Points.AddXY(Dis, geoPoint.Z);//绑定数据

                string pipeType = "";
                if (feature.GetFieldAsInt32("管线编码") >= 6000 && feature.GetFieldAsInt32("管线编码") <= 6203)  // 6100是热力管线的编码
                {
                    pipeType = "热力管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 4000 && feature.GetFieldAsInt32("管线编码") <= 4306)//排水
                {
                    pipeType = "排水管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 3000 && feature.GetFieldAsInt32("管线编码") <= 3513)  // 3000是给力管线的编码
                {
                    pipeType = "给水管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 1000 && feature.GetFieldAsInt32("管线编码") <= 1808)  // 电力管线的编码
                {
                    pipeType = "电力管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 2000 && feature.GetFieldAsInt32("管线编码") <= 2300)  // 通信管线的编码
                {
                    pipeType = "通信管线";
                }
                else if (feature.GetFieldAsInt32("管线编码") >= 5000 && feature.GetFieldAsInt32("管线编码") <= 5200)  // 通信管线的编码
                {
                    pipeType = "燃气管线";
                }
                string number = Convert.ToString(i + 1);

                string material = feature.GetFieldAsString("材质");
                string diameter = feature.GetFieldAsString("管径_毫米");
                table.Rows.Add(new object[] { number, pipeType, feature.Name.ToString(), diameter, material, Convert.ToDecimal(list[i].ToString()).ToString("f2") });//list[i].ToString().Substring(0,list[i].ToString().IndexOf('.')+3) }

                //chart1.Series["管线"].Points[i].Label = number;//管线的标签
                chart1.Series["管线"].Points[i].LegendText = number;
                if (feature.Geometry.Style.GetType() == typeof(GSOPipeLineStyle3D))
                {
                    GSOPipeLineStyle3D style = (GSOPipeLineStyle3D)feature.Geometry.Style;
                    chart1.Series["管线"].Points[i].MarkerBorderColor = style.LineColor;     //点的填充色
                }
                else
                {
                    chart1.Series["管线"].Points[i].MarkerBorderColor = Color.Black;
                }

                chart1.Series["管线"].Points[i].MarkerBorderWidth = 3;                                                                                                                                //边框的宽度
                chart1.Series["管线"].Points[i].MarkerColor       = Color.Transparent;
                chart1.Series["管线"].Points[i].MarkerSize        = Convert.ToInt32(Math.Floor((feature.GetFieldAsDouble("管径_毫米") / 0.35 + chart1.Series["管线"].Points[i].MarkerBorderWidth) / 25.0)); //点的大小
            }

            string htmlCode = "<html><head><style>#hor-minimalist-b " +
                              "{-moz-background-clip:border;" +
                              "-moz-background-inline-policy:continuous;" +
                              "-moz-background-origin:padding;" +
                              "background:#FFFFFF none repeat scroll 0 0;" +
                              "border-collapse:collapse;" +
                              "font-family:'Lucida Sans Unicode','Lucida Grande',Sans-Serif;" +
                              " font-size:12px;" +
                              " margin:10px;" +
                              " text-align:left;" +
                              " width:80%;" +
                              " }" +
                              " #hor-minimalist-b th {" +
                              " border-bottom:2px solid #6678B1;" +
                              " color:#003399;" +
                              " font-size:12px;" +
                              "font-weight:normal;" +
                              "  padding:10px 8px;" +
                              " }" +
                              "  #hor-minimalist-b td {" +
                              " border-bottom:1px solid #CCCCCC;" +
                              " font-size:12px;" +
                              " color:#666699;" +
                              "padding:6px 8px;}" +
                              "#hor-minimalist-b tbody tr:hover td {" +
                              "color:#000099;}" +
                              "</style></head>" +
                              "<body style='border:none;' ><table align='center' summary='Employee Pay Sheet' id='hor-minimalist-b'><thead><tr><th scope='col'>管线类型</th><th scope='col'>管线编码</th><th scope='col'>管径_毫米</th>" +
                              "<th scope='col'>材质</th><th scope='col'>管线埋深</th></tr></thead>" +
                              "<tbody><tr><td>" +
                              "</td><td>" +
                              "</td><td>" +
                              "</td><td>" +
                              "</td><td>" +
                              "</td></tr></tbody></table></body><ml>";

            webBrowser1.DocumentText = htmlCode;
        }
Beispiel #9
0
 public static GeoScene.Data.GSOPoint2d XYZ_2_Latlon(double x, double y)
 {
     int id = GeoScene.Data.GSOProjectManager.AddProject(Utility.GetProjectName());
     GeoScene.Data.GSOPoint2d pt2d = new GeoScene.Data.GSOPoint2d(x, y);
     GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Inverse(pt2d, id);
     return result;
 }
Beispiel #10
0
 public static GeoScene.Data.GSOPoint2d Latlon_2_XYZ(double lon, double lat)
 {
     int id = GeoScene.Data.GSOProjectManager.AddProject(Utility.GetProjectName());
     GeoScene.Data.GSOPoint2d pt2d = new GeoScene.Data.GSOPoint2d(lon, lat);
     GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Forward(pt2d, id);
     return result;
 }
 public static GeoScene.Data.GSOPoint2d Latlon_2_XYZ(int projectID, GSOPoint3d point3d)
 {
     GeoScene.Data.GSOPoint2d point2d = new GeoScene.Data.GSOPoint2d(point3d.X, point3d.Y);
     GeoScene.Data.GSOPoint2d result  = GeoScene.Data.GSOProjectManager.Forward(point2d, projectID);
     return(result);
 }
 public static GeoScene.Data.GSOPoint2d XYZ_2_Latlon(int projectID, GSOPoint2d point2d)
 {
     GeoScene.Data.GSOPoint2d result = GeoScene.Data.GSOProjectManager.Inverse(point2d, projectID);
     return(result);
 }