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); }
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 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; }
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; }
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(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); }