添加矢量数据需要用到CMap,CMoDataConnection,CMoLayers,CMoMaplayer和CMoGeoDataset五个对象,它们关系如下:
矢量数据-
à CMoDataConnection-
àCMoGeoDataset-
àCMoMaplayer-
à CMoLayers-
àCMap
添加步骤
1) 创建数据连接对象
(1) 创建数据连接对象,并对所创建数据连接对象进行身份匹配;
CMoDataConnection conn;
If(!conn.CreateDispatch(TEXT(“MapObjects2.DataConnection”)))
Return “”;
(2) 设置要连接的数据所在的路径
Conn.SetDatabase(path) path表示数据所在的目录
(3) 与(2)设定的数据路径进行连接,最好用判定语句.
If(!conn.Connect())
Return “”
2) 连接相应的矢量数据集
(1) 获得Map控件对应的要素层集合对象
CMoLayers layers=m_map.GetLayers();
(2) 创建适量数据层对象(CMoMapLayer)的对象,并对所创建矢量数据层对象进行身份匹配;
CMoMapLayer layer;
If(!layer.CreateDispath(TEXT(“MapObjects2.MapLayer”)))
Return “”;
(3) 创建一个空间数据集对象
CString LayerName=FileName
FileName表示数据的名称
CMoGeaDataset GeoDataset=conn.FindGeoDataset)LayerName);
If(!GeoDataset)
Return “”;
(4) 把(2)创建的适量数据层对象与(3)创建的空间数据集对象进行连接,即给矢量数据层挂上相应的空间数据集;v