我有一个函数,用户上传一个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);发布于 2012-10-12 22:39:48
我从来没有使用过GeomFromGML(),所以我改用了NetTopologySuite。它包含两个类: GMLReader和WKTWriter,您可以使用它们首先读取GML,然后将其写入WKT。可以使用STGeomFromtext将WKT插入到数据库中,以将其保存在您的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?
https://stackoverflow.com/questions/10841819
复制相似问题