我正在将MapControl嵌入到C++应用程序中。该应用程序绑定到一个专有的非关系数据库。因此,将地图控件直接链接到GIS数据是不可行的。相反,我想简单地将我自己的点要素加载到要素图层中。我了解创建要素图层的机制,但它们似乎与某种类型的数据源绑定在一起。如何将要素数据直接加载到图层中,而不指向文件或数据库?换句话说,我希望这些功能只驻留在内存中。
发布于 2010-07-29 03:59:43
我会使用InMemoryWorkspaceFactory而不是ScratchWorkspaceFactory。
您仍然需要一个featurelayer,它将具有对驻留在内存工作区中的featurelayer类的引用,以及定义信息将如何符号化的符号系统(IGeoFeatureLayer.Renderer)。
发布于 2010-07-28 16:19:02
如果只想显示点,请不要使用要素图层,而是直接绘制到地图。示例:here
如果点具有关联数据,则需要将它们作为要素加载到要素类中(通过IFeatureClass.Insert),并将该要素类附着到要素图层。要执行此操作,首先需要创建自己的要素类。示例代码here。
本例并不是使用ShapeFileWorkspaceFactory在磁盘上创建shapefile来存储特征,而是您可以使用ScratchWorkspaceFactory在内存中创建临时工作区,该工作区在ArcMap关闭时刷新。
对于链接中的各种编程方言,我深表歉意,但我希望它们能给你一些工作的起点。
https://stackoverflow.com/questions/3348808
复制相似问题