zoukankan      html  css  js  c++  java
  • C# GDAL编码问题3——读取中文图层

    mdb总是会出现乱码问题,读取中文图层类似于读取中文属性一样,写一个扩展方法,调用API来处理。首先得找到API的名称:

    然后编写扩展方法:

    [DllImport("gdal204.dll", EntryPoint = "OGR_L_GetName", CallingConvention = CallingConvention.Cdecl)]
    public static extern System.IntPtr OGR_L_GetName(HandleRef handle);
    
    /// <summary>
    /// 读取图层名称
    /// </summary>
    /// <param name="layer">图层</param>
    /// <returns>图层名称</returns>
    public static string GetNameEx(this Layer layer)
    {
        IntPtr pName = OGR_L_GetName(OSGeo.OGR.Layer.getCPtr(layer));
        return Marshal.PtrToStringAnsi(pName);
    }
    

    最后轻松愉快地调用(实际并不轻松,GDAL乱码问题纠结了两天):

    Layer layer = mdbDataSource.GetLayerByIndex(1);
    Console.WriteLine("图层:" + layer.GetNameEx());
    
  • 相关阅读:
    Linux笔记(九)
    Linux笔记(八)
    Linux笔记(七)
    Linux笔记(五)
    Linux笔记(六)
    Linux笔记(四)
    Linux笔记(三)
    hdu 1009 qsort运用
    dfs模板 二部图的最大匹配
    拉格朗日函数c++
  • 原文地址:https://www.cnblogs.com/liweis/p/13747872.html
Copyright © 2011-2022 走看看