首页 / 浏览问题 / 组件GIS / 问题详情
C++ 是否可以自定义图片作为 Style 的 Marker?
19EXP 2019年08月31日
C++,现在看到 MarkerStyle 是从加载的符号库中获取图标的,如何使用自定义图片作为需要显示的图标?

需要在地图指定位置进行标绘及自定义航迹信息,需要同这些标绘及航迹进行交互(选中、显示信息、显示操作菜单等),需要显示的标绘和航迹数量不定,目前计划使用动态图层,通过设置 geometry style 显示图标及其状态,但是 style 涉及到的图标不方便做成符号库,有没有什么方案推荐?谢谢。

1个回答

您好,几何对象的风格只能通过符号库来设置图标,设置图层风格或对象风格(CAD图层,动态层,跟踪层)。若要支持交互,只能使用数据集图层。
694EXP 2019年09月02日

有没有这两个 API 使用的例子?我看注释说:

风格可以独立于符号库

	//! \brief 设置点符号风格,风格可以独立于符号库
	//! \param pMarkerSymbolStream	点符号的Stream流信息[in]
	//! \param nMarkerSymbolVersion 点符号的版本[in]
	//! \return 设置是否成功,失败的话不破坏以前的符号信息
	//! \remarks 对于流信息,用户可以将点符号通过Save的方式封装成为Stream的形式,然后保存在风格中,另外,对于Stream流的释放则由用户自己负责
	UGbool SetMarkSymbolStyle(UGMemoryStream* pMarkerSymbolStream, UGuint nMarkerSymbolVersion);
	UGbool SetMarkSymbolStyle(UGbyte* pMarkerSymbolBuffer,UGuint nMarkerSymbolLength, UGuint nMarkerSymbolVersion,UGbool bOwned = false);

UGStyle::SetPicturePath 设置后有效,是这样的用法吗?
您好,关于这些方法目前没有示例,使用Stream和Byte生成UGStyle没有确切的流程说明,这个些函数常由UGC内不使用,其他组件使用的接口都是使用符号库,无法为此参考。SetPicturePath()没有确切的说明,暂时不确定其功能。

我这会进行验证,有结果再回复您。

多谢,目前我这边是计划先用 SetPicturePath,可以支持设置角度,基本可以满足需求,不方便的地方是必须使用文件路径而不是 Qt 资源的路径

之前使用的 Android 的 imobile 进行开发,marker 可以直接使用 Android 的资源,还是很方便的。

感谢理解,C++的组件实现的是平台无关的,使用上会有些不同。
使用 SetPicturePath 后,显示的对象多了以后,刷新会很慢,卡的不响应是常事。
...