Как импортировать gml в столбец геометрии с помощью GeomFrom GML() в MVC

У меня есть функция, когда пользователь загружает файл KML, я использую XSLT для преобразования его в GML, а затем сохраняю в другой файл. Мой вопрос: как я могу импортировать эти данные GML в столбец геометрии, используя GeomFromGML() в MVC?

Полностью озадачен и не могу найти хороших примеров. Ниже мой код для загрузки и преобразования:

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

person user1382770    schedule 31.05.2012    source источник


Ответы (1)


Мне никогда не везло с GeomFromGML(), поэтому вместо этого я использую NetTopologySuite. Он содержит два класса: GMLReader и WKTWriter, которые вы можете использовать, чтобы сначала прочитать 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?

person nivs1978    schedule 12.10.2012