博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在地图上添加POI(二)
阅读量:5314 次
发布时间:2019-06-14

本文共 1552 字,大约阅读时间需要 5 分钟。

在上一篇中实现一个icon + label的Marker需要使用两个Tangram的Marker, 今天分析了Tangram的源码后, 发现Tangram时支持单一Marker同时显示的, 这需要使用嵌套的Style。

上一篇使用的Style是两个:

style: points, color: white, size: [32px, 32px], order: 100, collide: false

text:    text_source: function(){ return "label"},    priority: 100

但其实points style支持text属性, 两个合并后变成:

style: points,color: white,size: [32px, 32px],order: 100,collide: false,text:    text_source: 'function(){ return \"Title\"}',    priority: 100

代码如下

void MarkerImpl::createMarker(const std::string &iconURI, const std::string &title){    QImage img(QString(iconURI.c_str()));    int width = img.width();    int height = img.height();    auto argb = new unsigned int [width * height];    for(int h=height-1; h>-1; --h){        for(int w=0; w
> 16) & 0xff; int pr = (pix << 16) & 0x00ff0000; int pix1 = (pix & 0xff00ff00) | pr | pb; argb[w + h*width] = pix1; } } m_map->markerSetBitmap(m_ID, width, height, argb); delete[] argb; static const char* MARKER_STYLE_TEMPLATE = "{ style: 'points'," " color: 'white'," " size: [%1px, %2px]," " order: 100," " collide: false," " text: {
" " text_source: 'function(){ return \"%3\"}'," " priority: 100 } }"; QString iconStyle = QString(MARKER_STYLE_TEMPLATE).arg(width).arg(height).arg(title.c_str()); m_map->markerSetStyling(m_ID, iconStyle.toStdString().c_str());}

这里使用了单行YAML的写法, 详见

 

转载于:https://www.cnblogs.com/btian/p/6143006.html

你可能感兴趣的文章
【工具】PC端调试手机端 Html 页面的工具
查看>>
[转]table中设置tr行间距
查看>>
1988-B. 有序集合
查看>>
PowerDesigner新建模板
查看>>
携程编程大赛 (预赛第二场)第一题【剪刀石头布】
查看>>
Windows上运行Mapreduce提示无法初始化集群
查看>>
32 commons-lang包学习
查看>>
推荐书本_
查看>>
Linux bc 命令简单学习
查看>>
yum安装mysql5.6
查看>>
HTTPS协议开通,Apache服务器CSR签名申请
查看>>
thinkphp3.2 jquery ajax巧妙使用
查看>>
7月18日实习日志
查看>>
开机的时候重新设置密linux管理员的密码
查看>>
Httpclient发送json请求
查看>>
一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件
查看>>
使用Visual Studio 创建新的Web Part项目
查看>>
Koa -- 基于 Node.js 平台的下一代 web 开发框架
查看>>
Max Sum
查看>>
JS中数组Array的用法{转载}
查看>>