浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

本章节将对绘制折线、绘制虚线、分段颜色绘制折线、分段纹理绘制折线进行说明。通过这些功能可以绘制各种各样的规划路线或物体轨迹。
绘制折线

通过PolylineOptions类来设置折线的属性,绘制折线的示例代码如下:

//构建折线点坐标
LatLng p1 = new LatLng(39.97923, 116.357428);
LatLng p2 = new LatLng(39.94923, 116.397428);
LatLng p3 = new LatLng(39.97923, 116.437428);
List<LatLng> points = new ArrayList<LatLng>();
points.add(p1);
points.add(p2);
points.add(p3);

//设置折线的属性
OverlayOptions mOverlayOptions = new PolylineOptions()
        .width(10)
        .color(0xAAFF0000)
        .points(points);
//在地图上绘制折线
//mPloyline 折线对象
Overlay mPolyline = mBaiduMap.addOverlay(mOverlayOptions);

绘制效果如图:
polyline1.png
PolylineOptions包含多种可供设置的属性。常用属性如下:

名称 说明
color 折线颜色
width 折线宽度
points 折线坐标点列表
colorsValues 分段折线颜色值列表
customTexture 折线自定义纹理
customTextureList 分段折线纹理列表
textureIndex 分段纹理绘制纹理索引
visible 折线是否可见
extraInfo 折线额外信息
绘制虚线

先绘制普通折线,然后可以通过两种方式来绘制虚线。
通过PolylineOptions设置

//设置折线的属性
OverlayOptions mOverlayOptions = new PolylineOptions()
        .width(10)
        .color(0xAAFF0000)
        .points(points)
        .dottedLine(true); //设置折线显示为虚线

通过Polyline对象设置

//设置折线显示为虚线
((Polyline) mPolyline).setDottedLine(true);

分段颜色绘制折线

自v3.6.0版本起,扩展了折线多段颜色绘制能力:支持分段颜色绘制。示例代码如下:

//构建折线点坐标
List<LatLng> points = new ArrayList<LatLng>();
points.add(new LatLng(39.965,116.404));
points.add(new LatLng(39.925,116.454));
points.add(new LatLng(39.955,116.494));
points.add(new LatLng(39.905,116.554));
points.add(new LatLng(39.965,116.604));

List<Integer> colors = new ArrayList<>();
colors.add(Integer.valueOf(Color.BLUE));
colors.add(Integer.valueOf(Color.RED));
colors.add(Integer.valueOf(Color.YELLOW));
colors.add(Integer.valueOf(Color.GREEN));

//设置折线的属性
OverlayOptions mOverlayOptions = new PolylineOptions()
        .width(10)
        .color(0xAAFF0000)
        .points(points)
        .colorsValues(colors);//设置每段折线的颜色

//在地图上绘制折线
//mPloyline 折线对象
Overlay mPolyline = mBaiduMap.addOverlay(mOverlayOptions);

显示效果如图:

polyline2.png

分段纹理绘制折线

自v3.6.0起,扩展了折线多段颜色绘制能力:增加支持分段纹理绘制。

纹理素材格式:纹理图片须是正方形,宽高是2的整数幂,如64*64,否则无效;若设置了纹理图片,折线颜色将无效。分段纹理绘制折线时建议开启绘制虚线。

注意:目前仅支持对折线设置纹理,其余覆盖物目前暂不支持设置纹理。

示例代码如下:

//构建折线点坐标
List<LatLng> points = new ArrayList<LatLng>();
points.add(new LatLng(39.865, 116.444));
points.add(new LatLng(39.825, 116.494));
points.add(new LatLng(39.855, 116.534));
points.add(new LatLng(39.805, 116.594));

//添加纹理图片
List<BitmapDescriptor> textureList = new ArrayList<>();
textureList.add(mRedTexture);
textureList.add(mBlueTexture);
textureList.add(mGreenTexture);

//添加纹理索引
List<Integer> indexList = new ArrayList<>();
indexList.add(0);
indexList.add(1);
indexList.add(2);


//设置折线的属性
OverlayOptions mOverlayOptions = new PolylineOptions()
        .width(20)
        .dottedLine(true)
        .points(points)
        .customTextureList(textureList)
        .textureIndex(indexList);//设置纹理列表

//在地图上绘制折线
//mPloyline 折线对象
Overlay mPolyline = mBaiduMap.addOverlay(mOverlayOptions);

显示效果如图:
polyine3.png

Polyline的点击事件

点击polyline会回调BaiduMap.OnPolylineClickListener接口的onPolylineClick方法。

示例代码如下:

BaiduMap.OnPolylineClickListener listener = new BaiduMap.OnPolylineClickListener() {
    //处理Polyline点击逻辑
    @Override
    public boolean onPolylineClick(Polyline polyline) {
        Toast.makeText(PolylineDemo.this, "Click on polyline", Toast.LENGTH_LONG).show();
        return true;
    }
};

//设置Polyline点击监听器
mBaiduMap.setOnPolylineClickListener(listener);

显示效果如图:

polyline4.png

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消