方法一:
1.下载编译好的gdal文件 链接地址为 http://www.gisinternals.com/release.php 可以选择32位或64位的类包。也可以在older versions下载旧版本。
2.配置环境变量:
将下载的zip文件放到e盘,路径为E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1
1)新增环境变量GDAL32_DLL
值为:E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin;E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin\gdal\csharp;E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin\gdal\java
2)新增环境变量GDAL_DATA
值为:E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin\gdal-data
3)在path下添加 %GDAL32_DLL%
3.在vs2017新建项目中添加引用 这四个dll文件即可。
方法二:
1.在vs中找到项目->管理NutGet程序包,下载并安装gdal 、gdal.native。
2.安装完之后会在项目中产生一个文件,将代码替换到此文件。
using System;
using System.IO;
using System.Reflection;
using Gdal = OSGeo.GDAL.Gdal;
using Ogr = OSGeo.OGR.Ogr;
namespace trans
{
public static partial class GdalConfiguration
{
private static bool _configuredOgr;
private static bool _configuredGdal;
/// <summary>
/// Function to determine which platform we're on
/// </summary>
private static string GetPlatform()
{
return IntPtr.Size == 4 ? "x86" : "x64";
}
/// <summary>
/// Construction of Gdal/Ogr
/// </summary>
static GdalConfiguration()
{
var executingAssemblyFile = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase).LocalPath;
var executingDirectory = Path.GetDirectoryName(executingAssemblyFile);
if (string.IsNullOrEmpty(executingDirectory))
throw new InvalidOperationException("cannot get executing directory");
var gdalPath = Path.Combine(executingDirectory, "gdal");
var nativePath = Path.Combine(gdalPath, GetPlatform());
// Prepend native path to environment path, to ensure the
// right libs are being used.
var path = Environment.GetEnvironmentVariable("PATH");
path = nativePath + ";" + Path.Combine(nativePath, "plugins") + ";" + path;
Environment.SetEnvironmentVariable("PATH", path);
// Set the additional GDAL environment variables.
var gdalData = Path.Combine(gdalPath, "data");
Environment.SetEnvironmentVariable("GDAL_DATA", gdalData);
Gdal.SetConfigOption("GDAL_DATA", gdalData);
var driverPath = Path.Combine(nativePath, "plugins");
Environment.SetEnvironmentVariable("GDAL_DRIVER_PATH", driverPath);
Gdal.SetConfigOption("GDAL_DRIVER_PATH", driverPath);
Environment.SetEnvironmentVariable("GEOTIFF_CSV", gdalData);
Gdal.SetConfigOption("GEOTIFF_CSV", gdalData);
var projSharePath = Path.Combine(gdalPath, "share");
Environment.SetEnvironmentVariable("PROJ_LIB", projSharePath);
Gdal.SetConfigOption("PROJ_LIB", projSharePath);
}
/// <summary>
/// Method to ensure the static constructor is being called.
/// </summary>
/// <remarks>Be sure to call this function before using Gdal/Ogr/Osr</remarks>
public static void ConfigureOgr()
{
if (_configuredOgr) return;
// Register drivers
Ogr.RegisterAll();
_configuredOgr = true;
}
/// <summary>
/// Method to ensure the static constructor is being called.
/// </summary>
/// <remarks>Be sure to call this function before using Gdal/Ogr/Osr</remarks>
public static void ConfigureGdal()
{
if (_configuredGdal) return;
// Register drivers
Gdal.AllRegister();
_configuredGdal = true;
}
}
}
3.将....packages\GDAL.Native.2.3.3\build 的gdal文件夹考到bin中。
4.添加同方法一的四个引用文件 文件路径在此路径下
5.最后,在主程序方法中添加三个方法即可。