地图中添加沿线文字标注

11次阅读

共计 2137 个字符,预计需要花费 6 分钟才能阅读完成。

以下内容转载自工程师 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();}

最终的效果:

注意事项

在使用这个功能的时候也遇到了一些问题,这里也列举下

  1. PolylineOptions.Text.Builder.priority(TextPriority priority) 设置文字优先级的接口,只有普通和高两个级别,在需要多条线上需要标注文字时,只能有一条线上的文字是 TextPriority.HIGH, 否则多条线重叠时,无法保证优先展示的是用户希望的那条线的文字
  2. 文字是不可变的。当通过 Tencentmap.addPolyline 向地图添加线后,用户通过 PolylineOptions 设置的 PolylineOptions.Text 是不能改变的,如果想改变文字内容只能使用 Polyline.setText 接口设置 一个新的 PolylineOptions.Text 对象。
    3、如果要移除文字,可以通过 Polyline.setText 接口传入 null。

正文完
 0

地图中添加沿线文字标注

11次阅读

共计 2137 个字符,预计需要花费 6 分钟才能阅读完成。

以下内容转载自工程师 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();}

最终的效果:

注意事项

在使用这个功能的时候也遇到了一些问题,这里也列举下

  1. PolylineOptions.Text.Builder.priority(TextPriority priority) 设置文字优先级的接口,只有普通和高两个级别,在需要多条线上需要标注文字时,只能有一条线上的文字是 TextPriority.HIGH, 否则多条线重叠时,无法保证优先展示的是用户希望的那条线的文字
  2. 文字是不可变的。当通过 Tencentmap.addPolyline 向地图添加线后,用户通过 PolylineOptions 设置的 PolylineOptions.Text 是不能改变的,如果想改变文字内容只能使用 Polyline.setText 接口设置 一个新的 PolylineOptions.Text 对象。
    3、如果要移除文字,可以通过 Polyline.setText 接口传入 null。

正文完
 0

地图中添加沿线文字标注

11次阅读

共计 2137 个字符,预计需要花费 6 分钟才能阅读完成。

以下内容转载自工程师 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();}

最终的效果:

注意事项

在使用这个功能的时候也遇到了一些问题,这里也列举下

  1. PolylineOptions.Text.Builder.priority(TextPriority priority) 设置文字优先级的接口,只有普通和高两个级别,在需要多条线上需要标注文字时,只能有一条线上的文字是 TextPriority.HIGH, 否则多条线重叠时,无法保证优先展示的是用户希望的那条线的文字
  2. 文字是不可变的。当通过 Tencentmap.addPolyline 向地图添加线后,用户通过 PolylineOptions 设置的 PolylineOptions.Text 是不能改变的,如果想改变文字内容只能使用 Polyline.setText 接口设置 一个新的 PolylineOptions.Text 对象。
    3、如果要移除文字,可以通过 Polyline.setText 接口传入 null。

正文完
 0

地图中添加沿线文字标注

11次阅读

共计 2274 个字符,预计需要花费 6 分钟才能阅读完成。

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

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

上面的截图中,路线上面都绘制出了路名,方便用户查看自己选择的路线都经过了哪些道路。这里用到的地图的能力即为 沿线文字标注 腾讯地图 Android SDK v4.2.7 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();}

最终的效果:

注意事项

在使用这个功能的时候也遇到了一些问题,这里也列举下

  1. PolylineOptions.Text.Builder.priority(TextPriority priority) 设置文字优先级的接口,只有普通和高两个级别,在需要多条线上需要标注文字时,只能有一条线上的文字是 TextPriority.HIGH, 否则多条线重叠时,无法保证优先展示的是用户希望的那条线的文字
  2. 文字是不可变的。当通过 Tencentmap.addPolyline 向地图添加线后,用户通过 PolylineOptions 设置的 PolylineOptions.Text 是不能改变的,如果想改变文字内容只能使用 Polyline.setText 接口设置 一个新的 PolylineOptions.Text 对象。
    3、如果要移除文字,可以通过 Polyline.setText 接口传入 null。

正文完
 0