CMapXPoints Pnts; //点集对象
CMapXFeatureFactory FeaFac;
CMapXLayer Layer;
CMapXFeature Feature;
CMapXStyle Style;
double centerX,centerY; //得到地图的中心
centerX=m_ctrlMapX.GetCenterX();
centerY=m_ctrlMapX.GetCenterY();
Pnts.CreateDispatch(Pnts.GetClsid());
// 判断是否存在tempLayer图层
CMapXLayers layers=m_ctrlMapX.GetLayers();
BOOL Flag=false;
for(int i=0;i<layers.GetCount();i++)
{
Layer=layers.Item(i+1);
if(Layer.GetName()=="tempLayer")
{
Flag=true;
break;
}
}
//没有tempLayer图层,就新建
if (Flag==false)
{
CMapXLayer lyr=m_ctrlMapX.GetLayers().CreateLayer("tempLayer");
m_ctrlMapX.GetLayers().SetAnimationLayer(lyr); //设为动态图层
}
Layer=m_ctrlMapX.GetLayers().Item("tempLayer");
FeaFac=m_ctrlMapX.GetFeatureFactory();
//加点
Layer.BeginAccess(miAccessReadWrite);
for(i=0;i<450;i++)
{
Pnts.AddXY(sss[i].x,sss[i].y);//加点
Pnts.AddXY(sss[i+1].x,sss[i+1].y);
//
COleVariant vtPoints;
vtPoints.vt=VT_DISPATCH;
vtPoints.pdispVal=Pnts.m_lpDispatch;
vtPoints.pdispVal->AddRef();
Feature=FeaFac.CreateLine(vtPoints); //按照点集画线
Style=Feature.GetStyle();
Style.SetLineColor(miColorRed); //线条颜色
Style.SetLineWidth(2); //线条宽度
Feature.SetStyle(Style.m_lpDispatch);
Sleep(10);//睡眠,目的是减缓画线速度,以达到动态效果,可事实上没有达到,为什么?
Layer.AddFeature(Feature); //加入Feature
Layer.Refresh();
}
//更新图层
Layer.EndAccess();
CMapXFeatureFactory FeaFac;
CMapXLayer Layer;
CMapXFeature Feature;
CMapXStyle Style;
double centerX,centerY; //得到地图的中心
centerX=m_ctrlMapX.GetCenterX();
centerY=m_ctrlMapX.GetCenterY();
Pnts.CreateDispatch(Pnts.GetClsid());
// 判断是否存在tempLayer图层
CMapXLayers layers=m_ctrlMapX.GetLayers();
BOOL Flag=false;
for(int i=0;i<layers.GetCount();i++)
{
Layer=layers.Item(i+1);
if(Layer.GetName()=="tempLayer")
{
Flag=true;
break;
}
}
//没有tempLayer图层,就新建
if (Flag==false)
{
CMapXLayer lyr=m_ctrlMapX.GetLayers().CreateLayer("tempLayer");
m_ctrlMapX.GetLayers().SetAnimationLayer(lyr); //设为动态图层
}
Layer=m_ctrlMapX.GetLayers().Item("tempLayer");
FeaFac=m_ctrlMapX.GetFeatureFactory();
//加点
Layer.BeginAccess(miAccessReadWrite);
for(i=0;i<450;i++)
{
Pnts.AddXY(sss[i].x,sss[i].y);//加点
Pnts.AddXY(sss[i+1].x,sss[i+1].y);
//
COleVariant vtPoints;
vtPoints.vt=VT_DISPATCH;
vtPoints.pdispVal=Pnts.m_lpDispatch;
vtPoints.pdispVal->AddRef();
Feature=FeaFac.CreateLine(vtPoints); //按照点集画线
Style=Feature.GetStyle();
Style.SetLineColor(miColorRed); //线条颜色
Style.SetLineWidth(2); //线条宽度
Feature.SetStyle(Style.m_lpDispatch);
Sleep(10);//睡眠,目的是减缓画线速度,以达到动态效果,可事实上没有达到,为什么?
Layer.AddFeature(Feature); //加入Feature
Layer.Refresh();
}
//更新图层
Layer.EndAccess();
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货