地图中添加沿线文字标注
时间:2019-10-09
本文章向大家介绍地图中添加沿线文字标注,主要包括地图中添加沿线文字标注使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近需要实现导航功能,其中路线规划和导航场景如下图所示:
上面的截图中,路线上面都绘制出了路名,方便用户查看自己选择的路线都经过了哪些道路。这里用到的地图的能力即为沿线文字标注
腾讯地图 Android SDK v4.2.7 已经开放了实现此功能的能力。
主要涉及接口如下:
接口名称 | 功能概述 |
---|---|
PolylineOptions.text(Text text) | 置沿 polyline 展示的文字 |
PolylineOptions.Text.Builder(SegmentText segmentText | PolylineOptions.Text 构造器 |
PolylineOptions.Text.Builder.addSegmentText(SegmentText segmentText) | 添加线上展示文字的点串范围 |
PolylineOptions.Text.Builder.color(int color) | 设置文字颜色 |
PolylineOptions.Text.Builder.strokeColor(int color) | 设置文字描边颜色 |
PolylineOptions.Text.Builder.size(int size) | 设置文字尺寸 |
PolylineOptions.Text.Builder.priority(TextPriority priority) | 设置文字优先级 |
从这个功能涉及到的接口可以看出沿线文字标注
是作为 Polyline 的一个属性供用户在添加线的时候展示所需文字。
为一条线添加文字标注
1、选择合适的点串作为文字标注的路径。如下,我们选择了 苏州街-北四环西路辅路-彩和坊路 的一个点串作为 Polyline 绘制的路径。
//这一个点串表示了经 苏州街-北四环-彩和坊路 的一条路线
List<LatLng> points = new ArrayList<>();
//苏州街
points.add(new LatLng(39.982382, 116.305883));
//北四环西路辅路
points.add(new LatLng(39.984914, 116.305690));
//彩和坊路
points.add(new LatLng(39.985045, 116.308136));
points.add(new LatLng(39.983570, 116.308088));
points.add(new LatLng(39.980063, 116.308297));
2、绘制 Polyline 及其文字标注
public Polyline createLineWithText() {
if (mTencentmap == null) {
return null;
}
Polyline polyline = mTencentmap.addPolyline(
new PolylineOptions()
.addAll(points)
.color(0xff54ce4d)
.text(createText()));
return polyline;
}
public PolylineOptions.Text createText() {
List<PolylineOptions.SegmentText> segmentTexts = new ArrayList<>();
//苏州街 的绘制范围是从第0个点开始,第1个点结束
segmentTexts.add(new PolylineOptions.SegmentText(0, 1, "苏州街"));
//北四环西路辅路 的绘制范围是从第1个点开始,第2个点结束
segmentTexts.add(new PolylineOptions.SegmentText(1, 2, "北四环西路辅路"));
//彩和坊路 的绘制范围是从第2个点开始,第4个点结束
segmentTexts.add(new PolylineOptions.SegmentText(2, 4, "彩和坊路"));
return new PolylineOptions.Text.Builder(segmentTexts).build();
}
最终的效果:
注意事项
在使用这个功能的时候也遇到了一些问题,这里也列举下
- PolylineOptions.Text.Builder.priority(TextPriority priority) 设置文字优先级的接口,只有普通和高两个级别,在需要多条线上需要标注文字时,只能有一条线上的文字是 TextPriority.HIGH, 否则多条线重叠时,无法保证优先展示的是用户希望的那条线的文字
- 文字是不可变的。当通过 Tencentmap.addPolyline 向地图添加线后,用户通过 PolylineOptions 设置的 PolylineOptions.Text 是不能改变的,如果想改变文字内容只能重新添加一条线并设置 PolylineOptions.Text。
原文地址:https://www.cnblogs.com/Allen-wxk/p/11640119.html
- idea 远程调试 tomcat web应用
- Java 中冷门的 synthetic 关键字原理解读
- Spring 数据库连接(Connection)绑定线程(Thread)的实现
- Golang语言实现AzDG可逆加密算法实例
- python django整理(五)配置favicon.ico,解决警告Not Found: /favicon.ico
- SpringMVC + Mybatis bug调试 SQL正确,查数据库却返回NULL
- 原生javascript实现图片轮播效果代码
- Spring AOP中 args和arg-names的区别
- Golong 语言开发 go-websocket-sample 测试值得拥有
- Java面试系列23-spring(2)-配置数据库驱动、依赖、Mapping等
- 【Golang语言社区】 Go语言中使用 Protobuf
- Java面试系列21-xml
- tensorflow载入数据的三种方式 之 TF生成数据的方法
- JS游戏开发 可移动地图的实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 重启、关机:reboot,halt,poweroff
- 使用Docker构建ZooKeeper镜像
- Linux进程间的通信
- 如何使用jMeter对需要CSRF token验证的OData服务进行并发性能测试
- 如何让SAP C4C自定义BO实现附件上传的功能
- SAP C4C基于自定义BO开发的OWL UI,如何实现动态访问控制
- 使用ABAP CL_HTTP_CLIENT类消费OData服务时,如何避免CSRF令牌验证失败错误
- 使用ABAP代码消费SAP Cloud for Customer的OData服务
- 使用SAP C4C OData notification实现CRM和C4C的数据同步
- 在nodejs服务器和ABAP服务器上使用jsonp
- 如何在Android平台上创建自定义的Cordova插件并使用SAP UI5消费
- 使用SAP BSP应用运行Vue
- 微信开发系列之六 - 使用微信OAuth2 API读取微信用户信息,显示在SAP UI5里
- 微信开发系列之五 - 将SAP UI5应用嵌入到微信中
- 微信开发系列之四 - 将SAP C4C的数据更改通知发送到微信公众号上