MapObject控件的使用之改变图层颜色
作者:张松伟
如果你的地国正在显示一个“中国地图”的图层,而图层中每个省的颜色都是一样的,你是不是想把它做成真实地图一样的效果,给各个省填上颜色呢?好,让我们开始吧。
注意,一定要确保你的“中图地图”图层数据中有标识各个省的数据和字段(可以在ArcMap中看到),因为只有能区别出各个区域才能对区域填色,现在我们假设图层名称为China, 标识各个省的字段为NAME。好了,在你程序中加入改变颜色的函数吧。
void CMapCortrol::ChangeChinaColor()
{
CMoRecordset recs; //图层的记录集
CMoStrings strs; //MO的字符串类
strs.CreateDispatch("MapObjects2.Strings");
//得到图层数据中NAME字段的第条记录,保存在strs中。
CMoMapLayer lay = m_map.GetLayers().Item(COleVariant("China"));
recs = lay.GetRecords();
while(!recs.GetEof())
{
CMoFields mfs = recs.GetFields();
CMoField mf = mfs.Item(COleVariant("NAME"));
CString s = mf.Get_Value().bstrVal;
strs.Add(s);