FileGDBAPI学习
环境:vs2010 win7_64
- 首先可以在官网上下载对应版本的源码及例子
这里贴出官网下载地址http://appsforms.esri.com/products/download/#File_Geodatabase_API_1.3(下载速度比较慢)
这里我贴出我的环境对应的(点击下载)(密码:e4wl) 熟悉 并编译例子
下载的压缩包解压后,可以看到如下文件链接:
其中 /bin目录下主要包含我们调用API函数需要的.dll文件 /bin64 64位程序使用
/doc目录下包含完整的api介绍文档,建议详读
/include目录下包含所需的头文件,我们的项目中需要添加引用
/lib目录下主要包含需要使用的库文件
/samples目录下是C++调用API的例子
/samplesC#目录下是C#调用API的例子
OpenTK.dll和OpenTK.GLControl.dll是C#例子中要添加引用的dll(我自己下载源码编译得到的,顺便就放过来了)
用VS2010打开C++解决方案,解决方案如下图:
然后打开项目属性,确认包含目录和库目录是否正确:对应的include目录和lib目录
查看项目输出目录:
确保上面的提到的dll放入到该输出目录。
然后就可以点击生成并运行:
如果生成成功但运行时报以下错误:
是因为缺少vs2008运行时环境(点击下载),将其放在生成目录下,或者windows下的System32中
运行成功后得到如下结果:
利用API开发拷贝功能
这里主要编写了一些简单的Copy功能,可能实现不够完善,希望能够有大神指导。
拷贝整个FileGDB数据库,分两种方式
1.通过文件夹拷贝方式,详情参见
2.通过调用FileGDBAPI所提供的API:
实现比较简单,大致想法是细化问题,先实现拷贝要素函数、利用该函数实现拷贝要素数据集函数,然后利用上述两个函数实现整个数据库的拷贝。
这里贴出源码:
#include <Windows.h>
#include <shellapi.h>
#include <atlstr.h>
#include "FileGDBCopyHelp.h"
#include "FileGDBAPI.h"
using namespace std;
using namespace FileGDBAPI;
//从源数据库中拷贝要素到目标数据库
//sourceGdbFilePath 源数据库文件路径
//targetGdbFIlePath 目标数据库文件路径