将WKB转换为Esri GeodatabaseFeature
本文关键字:Esri GeodatabaseFeature 转换 WKB | 更新日期: 2023-09-27 18:22:23
我正在尝试制作一个UWP应用程序,该应用程序从SQLite数据库中获取数据并将其显示在ArcGIS地图上。
我已经将一个形状文件从QGIS导出到一个SQLite数据库。从这个数据库中,我检索到了WKB格式的GEOMETRY,但不确定如何将其转换为GeodatabaseFeature或其他可以在ArcGIS地图上显示的对象。
这是我目前的职能。
private void DisplayDatabase()
{
var tableName = (string)_DatabaseConnection.CreateCommand("SELECT f_table_name FROM geometry_columns").ExecuteDeferredQuery()[0]["f_table_name"];
var geometryData = _DatabaseConnection.CreateCommand($"SELECT * FROM {tableName}").ExecuteDeferredQuery();
foreach (var shape in geometryData)
{
//convert the data to an object
var geometry = shape["GEOMETRY"] as byte[];
//Need code to convert to Feature.
}
}
我找到了一种使用WKT的方法,但我确信有一种方法可以从WKB到WKT。
一旦进入WKT,你就可以使用这个类(很抱歉出现混乱)转换为JSON,该JSON可以在Geometry.FromJson(字符串)方法中使用,为你提供一个几何体,该几何体可以分配给图形,然后添加到图形层。
像这样:
var graphic = new Graphic(Geometry.FromJson(ConvertWkt2Json.WKT2JSON(wktGeometry)), new SimpleMarkerSymbol() { Style = SimpleMarkerStyle.Circle, Color = Colors.Red, Size = 17 });
layer.Graphics.Add(graphic);