地图中添加沿线文字标注

地图中添加沿线文字标注,第1张

概述腾讯位置服务地图SDK是一套提供多种地理位置服务的应用程序接口。通过调用该接口,开发者可以在自己的应用中加入地图相关的功能(如地图展示、标注、绘制图形等),轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、符合各种行业场景的地图类应用程序。 以下内容转载自工程师 Nero8421 的文章《  地图中添加沿线文字标注》 作者: Nero8421 链接: https://www.cnblogs.co
腾讯位置服务地图SDK是一套提供多种地理位置服务的应用程序接口。通过调用该接口,开发者可以在自己的应用中加入地图相关的功能(如地图展示、标注、绘制图形等),轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、符合各种行业场景的地图类应用程序。
以下内容转载自工程师 Nero8421 的文章《  地图中添加沿线文字标注》
作者: Nero8421
链接: https://www.cnblogs.com/Allen...
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

  最近需要实现导航功能,其中路线规划和导航场景如下图所示:

上面的截图中,路线上面都绘制出了路名,方便用户查看自己选择的路线都经过了哪些道路。这里用到的地图的能力即为沿线文字标注腾讯地图 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 是不能改变的,如果想改变文字内容只能使用 polyline.setText 接口设置 一个新的 polylineoptions.Text 对象。3、如果要移除文字,可以通过 polyline.setText 接口传入 null。 总结

以上是内存溢出为你收集整理的地图中添加沿线文字标注全部内容,希望文章能够帮你解决地图中添加沿线文字标注所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121405.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存