首页 / 浏览问题 / 组件GIS / 问题详情
C++组件二维动态层添加图片
4EXP 2020年07月20日
UGGeoPicture *pic = new UGGeoPicture();
    pic->SetAbsolutePath(UGString(_U("d:\\Plane.png")));
    pic->SetCenterPoint(center);
    UGStyle stylePic;
    stylePic.SetPicturePath(UGString(_U("d:\\Plane.png")));
    pic->SetStyle(&stylePic);
    pic->GetStyle()->SetIsVisible(true);
    pDyLayer->Add(UGString(_U("pic")), pic);

pMap->m_DynamicLayers.Add(pDyLayer);

我在 二维动态层添加图片怎么添加不成功,问题出在什么地方?

1个回答

二维里面建议使用跟踪图层,王跟踪图层里面添加图片,有下面两种方式:

1、直接使用UGGeoPicture,通过设置UGGeoPicture的SetAbsolutePath和中心点、宽度、高度等参数后,将UGGeoPicture直接添加到跟踪图层;  UGGeoPicture* geopicture = new UGGeoPicture();   geopicture-<SetAbsolutePath(_U("..\\..\\..\\TestData\\22.png"));   geopicture-<SetCenterPoint(pt);  geopicture-<SetHeight(50);  geopicture-<SetWidth(50);  m_pMapControl-<GetMapEditWnd()-<m_mapWnd.m_Map.m_TrackingLayer.Add(geopicture, _U("tupian"));  m_pMapControl-<GetMapEditWnd()-<m_mapWnd.m_Map.SetRefreshFlag(false);  m_pMapControl-<GetMapEditWnd()-<SendInvalidateFunc(); 

 2、或者将图标通过idekstop导入到符号资源库,然后构造一个点对象,设置点的风格,然后将填添加到跟踪图层;  UGGeoPoint* geopoint = new UGGeoPoint();  geopoint-<SetX(pt.x);  geopoint-<SetY(pt.y);  UGStyle* style = new UGStyle();  style-<SetMarkerStyle(65);//设置图标ID;  style-<SetMarkerSize(5);  geopoint-<SetStyle(style);  m_pMapControl-<GetMapEditWnd()-<m_mapWnd.m_Map.m_TrackingLayer.Add(geopoint, _U("dian"));

4,620EXP 2020年07月20日
按照第一种方法加载出来后,因为地图本身是全球的,非常大,导致要显示图片的区域也设置的非常大,请问下这里的图片本身很小,但是设置的SetHeight跟SetWight都非常大,导致图片区域根本看不到我想要加载的图片该怎么调整呢?
单位和地图单位是一致的,如果是地理坐标系,则设置小一点,如果是投影坐标系或者平面无投影坐标系,则需要设置大一点。
同时,设置为false后刷新是为了只刷新跟踪图层,否则设置为true会刷新整个地图,地图整个刷新会耗时比较久,地图没有改变,只是实时修改添加跟踪图层的时候,设置为false,可以提高地图刷新效率,优化显示效果
...