如下內容轉載自工程師 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 繪製的路徑。code
//這一個點串表示了經 蘇州街-北四環-彩和坊路 的一條路線 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 及其文字標註htm
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(); }
最終的效果:對象
在使用這個功能的時候也遇到了一些問題,這裏也列舉下blog