浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
组件GIS
/
问题详情
iobjects c++ 怎么把自定义图片制作成符号库
szcv612
56EXP
2019年10月24日
求解怎么把自制的png图片制作成符号库,在跟踪层显示
iobjectscpp
组件开发
c
请
登录
或者
注册
后回答这个问题。
1个回答
您好,比较方便准确的方式是在iDesktop中,打开左侧工作空间管理里的点符号资源,新建符号,可导入图片。具体操作看在iDesktop的帮助文档中搜索“导入点符号”。
幸俊
694EXP
2019年10月24日
你好!
我现在用的是linux版的iobjiobjects c++版,用iDesktop来制作可以吗?如果不行用代码实现应该咋实现呢?
您好,可以用iDesktop制作,代码实现方式待确定后告诉你。
你好!
请问一下iobjects c++用代码制作符号库实现了吗?
同问,需要支持用户自定义点符号显示,如何通过代码层实现支持?
每次都需要制作符号库的方式是用户不可接受的。
使用 SetPicturePath 实现的刷新极慢,无法使用。
大致过程是将图片数据读取到UGImageData, 然后创建成UGGeoPicture, 再转换的Symbol添加到符号库使用,过程比较复杂,试了一下效果不是特别好吧。还是建议使用iDesktop制作符号库,可将符号导出成符号库文件,再用代码加载符号库即可。
UGImageData* pImageData = new UGImageData();
pImageData->btBitsPixel = 32;
pImageData->nWidth = image.GetWidth();
pImageData->nHeight = image.GetHeight();
pImageData->nWidthBytes = image.GetWidth() * 4; // 32bits/pixel
pImageData->btPlanes = 1;
int byteCount = pImageData->nHeight * pImageData->nWidthBytes;
pImageData->pBits = new UGbyte[byteCount];
memcpy(pImageData->pBits, (UGbyte*)image.GetBits(), byteCount);
arrayImageData[0] = pImageData;
UGGeoPicture* pGeoPic = new UGGeoPicture();
pGeoPic->Make(arrayImageData, UGPoint2D(5, 5), UGSize2D(10, 10));
UGMarkerSymbol* pMarkerSymbol = new UGMarkerSymbol();
UGSymbol* pSymbol = pMarkerSymbol;
UGRect2D rect = pGeoPic->GetBounds();
UGSymbolToGeometry::GeometryToSymbol(pGeoPic, rect, pSymbol);
pSymbol->SetName(_U("Defined"));
pWorkspace->m_Resources.GetMarkerSymbolLib()->AddSymbol(pSymbol);
int id = pSymbol->GetID();
非常感谢,我已经采用制作符号库文件的方式来实现
感谢回答
试了一下效果不是特别好吧
这个不好具体体现在什么方面呢?
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
iobjects c++ 地图中显示自定义图片
C++ 是否可以自定义图片作为 Style 的 Marker?
iobjects c++如何使用自定义的图片
iobjects c++如何使用自定义的图片
SuperMap iObjects C++ 怎么进行自定义范围查询
iObjects C++如何使用自定义点绘制线?
iobjcet c++ 经纬度怎么转换成显示坐标
Linux系统中,基于SuperMap iObjects C++ 自定义范围查询失败。
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...