0

ユーザーが KML ファイルをアップロードする機能があり、XSLT を使用して GML に変換し、別のファイルに保存します。私の質問は、MVC で GeomFromGML() を使用して、この GML データをジオメトリ列にインポートするにはどうすればよいですか?

完全に困惑し、良い例が見つかりません。以下は、アップロードと変換のための私のコードです:

var fileName = Path.GetFileName(Polygon.FileName);
                var path = Path.Combine(Server.MapPath("~/App_Data/uploads"),fileName);
                Polygon.SaveAs(path);
                XPathDocument myXPathDoc = new XPathDocument(path);
                XslCompiledTransform myXslTrans = new XslCompiledTransform();
                myXslTrans.Load(Server.MapPath("~/App_Data/XSL/kml2gml2.xsl"));
                var gml = Path.Combine(Server.MapPath("~/App_Data/GML/gml.xml"));
                XmlTextWriter myWriter = new XmlTextWriter(gml, null);
                myXslTrans.Transform(myXPathDoc, null, myWriter);
4

1 に答える 1

1

私は GeomFromGML() で運がなかったので、代わりに NetTopologySuite を使用します。GMLReader と WKTWriter の 2 つのクラスが含まれており、最初に GML を読み取り、次に WKT に書き込むために使用できます。WKT は、STGeomFromtext を使用してデータベースに挿入し、SQL データベースに保存できます。

GMLReader gmlr = new GMLReader();
WKTWriter wktw = new WKTWriter();
IGeometry g = gmlr.Read(gmlxml);
string wkt = wktw.Write(g);
string sql = "INSERT INTO mytable (GeomCol) VALUES (geometry::STGeomFromText('"+wkt+"', 0));";

それとも、XSLT を使用して KML を直接 WKT に変換できるでしょうか?

于 2012-10-12T14:39:47.533 に答える