将WKB转换为Esri GeodatabaseFeature

时间:2015-11-18 02:38:59

标签: c# sqlite arcgis uwp qgis

我正在尝试创建一个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.
        }
    }

1 个答案:

答案 0 :(得分:0)

我找到了使用WKT的方法,但我确信有办法从WKB到WKT。

一旦进入WKT,您可以使用this类(对于混乱)来转换为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);