最后更新时间:2025-04-17
地图上的面一组在地图上的封闭线段组成的图形,包括圆形和多边形,用户可以为它设置描边和填充颜色。
多边形是由 Polygon 类定义的一组在地图上的封闭线段组成的图形,它由一组 LatLng 点按顺序连接而成。添加折线使用 Tencentmap.addPolygon(PolygonOptions options) 接口返回 Polygon 实例,Polygon 是在地图上画多边形的类,可以移除remove()多边形、设置多边形顶点、描边的宽度和颜色、多边形的填充色、层级关系、可见性、可点击性,也可以通过setOptions(PolygonOptions opts)设置一组属性。
1.添加多边形:
LatLng[] latLngs = {
new LatLng(39.984864, 116.305756),
new LatLng(39.983618, 116.305848),
new LatLng(39.982347, 116.305966),
new LatLng(39.982412, 116.308111),
new LatLng(39.984122, 116.308224),
new LatLng(39.984955, 116.308099),
new LatLng(39.984864, 116.305756)
};
PolygonOptions polygonOptions = new PolygonOptions();
//连接封闭图形的点
polygonOptions.add(latLngs);
//添加多边形
Polygon polygon = tencentMap.addPolygon(polygonOptions );
2.设置多边形属性:
//填充颜色
polygon.setFillColor(getResources().getColor(R.color.strokeColor));
//边线颜色
polygon.setStrokeColor(getResources().getColor(R.color.colorPrimary));
//边线宽度
polygon.setStrokeWidth(6);
//设置多边形镂空(镂空描边与多边形外轮廓样式一致,镂空点串之间不允许相交,且点串需在多边形内部)
polygon.setHolePoints(latList);
3.多边形虚线:
设置多边形边框有虚线和点两种方式
方式一:
//设置ARGB虚线的样式,与 texture(BitmapDescriptor) 互斥
polygonOptions.pattern(list);
方式二:
//设置纹理图片
polygonOptions.texture(BitmapDescriptorFactory.fromAsset("color_point_texture.png"));
//纹理间隔
polygonOptions.textureSpacing(30);
4.多边形面积计算:
double area = TencentMapUtils.calculateArea(Arrays.asList(latLngs));
5.移除多边形:
polygon.remove();
6.绘制的多边形效果如下图所示:
圆形是由 Circle 类定义的封闭曲线,在腾讯地图构造一个圆形需要确定它的圆心和半径。
圆的实例化需要一个 CircleOptions 对象,该对象是创建圆的参数类,可以设置圆心坐标、半径、描边的宽度和颜色、圆的填充颜色、层级、可见性、可点击性等属性。
添加圆返回的是一个 Circle 对象,该队形是在地图上画圆的类,可以通过它修改圆的属性。
1.设置圆的基础属性:
//添加圆
LatLng latLng = new LatLng(39.984059,116.307771);
circleOptions = new CircleOptions().
// 圆心
center(latLng).
// 半径,单位:米
radius(1000d).
// 圆的填充色
fillColor(0xff0000ff).
// 描边的颜色
strokeColor(0xff000000).
// 描边宽度
strokeWidth(15).
// 可点击性
clickable(false).
// 可见性
visible(true).
// 层级
zIndex(2)
circle = tencentMap.addCircle(circleOptions);
// 将地图视野移动到多边形所在区域,指定了经纬度和缩放级别
tencentMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(new LatLng(39.984059,116.307771), 10));
// 设置圆的填充色
circle.setFillColor(0xFFFF0000);
// 移除圆
circle.remove();
2.设置圆的描边类型:
描边分为三种:实线描边(默认)、方块描边、圆点描边
//方块描边
circleOptions.borderType(CircleOptions.CircleBorderType.DOTTEDLINE_SQUARE)
//圆点描边
circleOptions.borderType(CircleOptions.CircleBorderType.DOTTEDLINE_CIRCLE)
1.设置纹理图片(texture(BitmapDescriptor texture)),这个纹理会重复的绘填充到线上,同时用户应配置纹理间隔 textureSpacing(int),与strokeColor(int)、pattern(List)两个配置互斥,这三个接口最后调用的会生效
有帮助
没帮助