我将MapControl嵌入到C ++应用程序中。该应用程序与专有的非关系数据库相关联。因此,将地图控件直接链接到GIS数据是不可行的。相反,我想简单地将我自己的点要素加载到要素图层中。我理解创建要素图层的机制,但它们似乎与某种类型的数据源相关联。如何在不指向文件或数据库的情况下将要素数据直接加载到图层中?换句话说,我希望这些功能只占用内存。
答案 0 :(得分:1)
如果您只想显示点,请不要使用要素图层,而是直接绘制到地图。 示例:here
如果您的点有关联数据,则需要将它们作为要素加载到要素类中(通过IFeatureClass.Insert),并将要素类附加到要素图层。为此,您需要先创建自己的要素类。示例代码here。
并非此示例使用ShapeFileWorkspaceFactory在磁盘上创建shapefile来存储功能,但在您的情况下,您可以使用ScratchWorkspaceFactory创建临时内存工作区,在ArcMap关闭时刷新。
为链接中的各种编程方言道歉,但我希望他们能给你一些起点。
答案 1 :(得分:1)
您仍然需要一个featurelayer,它将引用驻留在内存工作区中的featureclass,以及定义信息将如何符号化的符号系统(IGeoFeatureLayer.Renderer)。