参考:http://blog.csdn.net/linghe301/article/details/8563027
环境:win7 x64 arcgis10.2.2
ArcGIS提供的源代码需要
1:MongoDB C# Driver:https://github.com/mongodb/mongo-csharp-driver/releases (1.10.1,最后一个支持.NET3.5)
2:MongoDB 数据库:http://www.mongodb.org/downloads
3:源代码:http://www.arcgis.com/home/item.html?id=25d12436c73a43c98c711826f9f662e4
下载完毕ArcGIS与MongoDB的源代码后,可以看到一个工程,需要在有ArcGIS Desktop或者ArcGIS Engine的机器上,结合VS2010(2008应该也可以,修改sln文件,.NET3.5即可)重新编译一下,编译后会得到3个dll,MongoDBCommands.dll,MongoDBPlugIn.dll,MongoDBPluginUI.dll
获得最新的dll,通过ESRIRegASM将MongoDBCommands.dll,MongoDBPlugIn.dll进行注册(不懂什么是ESRIRegASM,找到这两个dll,右键-register-选择desktop即可),打开arcmap--Customize--Customize Mode--Commands选项卡--在Categories栏中找到Mongo Plugin Commands--将右侧的两个按钮拖拽至工具栏(如下图红框)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Add MongoDB data layer
点击选择按钮,选择一个MongoDB的数据连接,即一个以mongoconn为后缀名的文本文件,内容如下:mongodb://mongodb_IP/?safe=true,dbname,最后OK
总结:经过测试,目前的Arcgis只有point类型的mongodb支持,在mongodb支持线和面后,arcgis并未延续(有更新请告知我),并且load data to mongodb和add mongodb data layer是配合使用的,也就是只有经过load工具上传到mongodb的feature,才能被add工具自动检测到(如下图)
经过load工具上传的矢量在mongodb中存在一个额外的索引collection-GDB_ITEMS,剩下的两个colletion无法被检测到(采用insert或sdk创建),places是点,meta是面。
最后将dll和数据库链接文件放在这里,有兴趣的可以下载:http://download.csdn.net/detail/liuhj1018/9105363