腾讯位置服务地图SDK是一套提供多种地理位置服务的应用程序接口。经过调用该接口,开发者能够在本身的应用中加入地图相关的功能(如地图展现、标注、绘制图形等),轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、符合各类行业场景的地图类应用程序。
如下内容转载自工程师 Nero8421 的文章《 地图中添加沿线文字标注》
做者: Nero8421
连接: https://www.cnblogs.com/Allen...
来源:博客园
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
最近须要实现导航功能,其中路线规划和导航场景以下图所示:html
上面的截图中,路线上面都绘制出了路名,方便用户查看本身选择的路线都通过了哪些道路。这里用到的地图的能力即为沿线文字标注
腾讯地图 Android SDK v4.2.7 已经开放了实现此功能的能力。android
主要涉及接口以下:ui
接口名称 | 功能概述 |
---|---|
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 的一个属性供用户在添加线的时候展现所需文字。spa
一、选择合适的点串做为文字标注的路径。以下,咱们选择了 苏州街-北四环西路辅路-彩和坊路 的一个点串做为 Polyline 绘制的路径。3d
//这一个点串表示了经 苏州街-北四环-彩和坊路 的一条路线 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));
二、绘制 Polyline 及其文字标注code
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(); }
最终的效果:htm
在使用这个功能的时候也遇到了一些问题,这里也列举下对象