public static MG_Geometry AsGeometry(Geometry g) { MG_Geometry geometry = new MG_Geometry(); if (g.GetGeometryType() == wkbGeometryType.wkbPoint) { geometry = AsPoint(g); } else if (g.GetGeometryType() == wkbGeometryType.wkbMultiPoint) { geometry = AsMultiPoint(g); } else if (g.GetGeometryType() == wkbGeometryType.wkbLineString) { geometry = AsLineString(g); } else if (g.GetGeometryType() == wkbGeometryType.wkbMultiLineString) { geometry = AsMultiLineString(g); } else if (g.GetGeometryType() == wkbGeometryType.wkbPolygon) { geometry = AsPolygon(g); } else if (g.GetGeometryType() == wkbGeometryType.wkbMultiPolygon) { geometry = AsMultiPolygon(g); } return(geometry); }
public static MG_Feature AsFeature(Feature f) { FeatureDefn def = f.GetDefnRef(); MG_FieldSet fieldSet = AsFieldSet(def); MG_Feature mgFeature = new MG_Feature(fieldSet);//collect data // geometry Geometry g = f.GetGeometryRef(); MG_Geometry geometry = AsGeometry(g); string wkt = geometry.AsWKT(); // Test mgFeature.SetGeometry(geometry); //collect data // symbol string styleString = f.GetStyleString(); //f.SetStyleString(styleString); // attribute value MG_ValueSet valueSet = new MG_ValueSet(); int fid = f.GetFID(); int nFieldCount = f.GetFieldCount(); for (int iField = 0; iField < nFieldCount; iField++) { FieldDefn fdef = def.GetFieldDefn(iField); FieldType fieldType = fdef.GetFieldType();//OFTInteger OFTString OFTString MG_Value mgValue = new MG_Value(); mgValue.Index = iField;// collect data //collect data if (fieldType == FieldType.OFTString) { mgValue.Value = f.GetFieldAsString(iField); } else if (fieldType == FieldType.OFTInteger) { mgValue.Value = f.GetFieldAsInteger(iField); } else if (fieldType == FieldType.OFTReal) { mgValue.Value = f.GetFieldAsDouble(iField); } else if (fieldType == FieldType.OFTDateTime) { int year, month, day, hour, minute, second, flag; f.GetFieldAsDateTime(iField, out year, out month, out day, out hour, out minute, out second, out flag); mgValue.Value = new DateTime(year, month, day, hour, minute, second, flag); } valueSet.Add(mgValue); } mgFeature.ValueSet = valueSet;//collect data return(mgFeature); }
private string sql_Insert(string table, MG_ValueSet valueSet, MG_Geometry geometry) {// oid, field1, field2, field3, field4,...fieldN, geom // INSERT INTO point(f1, f2, f3, geom) VALUES('v1', 'v2', 'v3', ST_GeometryFromText('POINT (100 200)',0)); string str1 = "INSERT INTO {0}("; str1 = String.Format(str1, table); // oid name geom cityno length // name cityno length ArrayList columns = this.GetColumnNames(table); string str2 = ""; string str4 = ""; if (columns != null && valueSet != null) { string temp1 = "{0}, "; string temp2 = "'{0}', "; int countField = columns.Count; //5 int countValue = valueSet.Count(); // 3 if (countField - 2 == countValue) // oid geom { for (int i = 0; i < countField; i++) { string column = columns[i].ToString(); if (!column.Equals("oid") && !column.Equals("geom")) { str2 += String.Format(temp1, column); } } for (int j = 0; j < countValue; j++) { str4 += String.Format(temp2, valueSet.GetAt(j).Value); } } } string str3 = "geom) VALUES("; string str5 = "ST_GeometryFromText('{0}',0));"; str5 = String.Format(str5, geometry.AsWKT()); string strSQL = str1 + str2 + str3 + str4 + str5; return(strSQL); }
public int Insert(string table, MG_ValueSet valueSet, MG_Geometry geometry) { string strSQL = this.sql_Insert(table, valueSet, geometry); return(this.Run(strSQL)); }
public int Insert(string table, MG_ValueSet valueSet, MG_Geometry geometry) { this.sql_Insert(table, valueSet, geometry, out m_strSQL, out m_sqlParams); return(this.RunSQL(m_strConn, m_strSQL, m_sqlParams)); }
public static void RenderGeometry(Graphics g, Pen pen, Brush brush, MG_MapView mapview, MG_Geometry geometry) { switch (geometry.Type) { case MG_GeometryType.NONE: break; case MG_GeometryType.POINT: MG_MapRender.RenderPoint(g, brush, MG_Constant.PointRadius, mapview, geometry as MG_Point); break; case MG_GeometryType.MULTIPOINT: MG_MapRender.RenderMultiPoint(g, brush, MG_Constant.PointRadius, mapview, geometry as MG_MultiPoint); break; case MG_GeometryType.LINESTRING: MG_MapRender.RenderLineString(g, pen, mapview, geometry as MG_LineString); break; case MG_GeometryType.MULTILINESTRING: MG_MapRender.RenderMultiLineString(g, pen, mapview, geometry as MG_MultiLineString); break; case MG_GeometryType.POLYGON: MG_MapRender.RenderPolygon(g, brush, mapview, geometry as MG_Polygon); //MG_MapRender.RenderPolygon(g, pen, mapview, geometry as MG_Polygon); break; case MG_GeometryType.MULTIPOLYGON: MG_MapRender.RenderMultiPolygon(g, brush, mapview, geometry as MG_MultiPolygon); //MG_MapRender.RenderMultiPolygon(g, pen, mapview, geometry as MG_MultiPolygon); break; } }