安卓开发-百度地图-几何图形覆盖物+文字覆盖物+弹出窗覆盖物+地图类型+地图控制和手势
来源:互联网 发布:淘宝店铺公告图片 编辑:程序博客网 时间:2024/05/05 06:07
《一:几何图形覆盖物》
地图SDK提供多种结合图形覆盖物,利用这些图形,可帮助您构建更加丰富多彩的地图应用。目前提供的几何图形有:点(Dot)、折线(Polyline)、弧线(Arc)、圆(Circle)、多边形(Polygon)。在百度地图上展示覆盖物,需使用百度BD09坐标,如使用其他坐标( WGS84、GCJ02)进行展示,需先将其他坐标转换为BD09,详细说明请参考坐标转换页面,请勿使用非官方的转换方法。
1.绘制五边形:(五个点+边界颜色+填充颜色(透明的)):
//1.定义多边形的五个顶点 LatLng pt1 = new LatLng(39.93923, 116.357428); LatLng pt2 = new LatLng(39.91923, 116.327428); LatLng pt3 = new LatLng(39.89923, 116.347428); LatLng pt4 = new LatLng(39.89923, 116.367428); LatLng pt5 = new LatLng(39.91923, 116.387428); List<LatLng> pts = new ArrayList<LatLng>(); pts.add(pt1); pts.add(pt2); pts.add(pt3); pts.add(pt4); pts.add(pt5); //2.构建用户绘制多边形的Option对象 OverlayOptions polygonOption = new PolygonOptions() .points(pts) .stroke(new Stroke(5, 0xAA00FF00)) //边界颜色 .fillColor(0xAAFFFF00); //内部填充颜色//3.在地图上添加多边形mBaiduMap.addOverlay(polygonOption);
2.Android地图SDK自v3.5.0版本起,新增了折线多段颜色绘制能力,实现的核心代码如下:
2.1.定义点
2.2.定义自定义纹理(BitmapDescriptor)
2.3.形成纹理队列.点队列.纹理索引队列
2.4.创建OverlaySooPoly,添加三个队列,,宽,颜色
2.5 将折线段添加到地图中
//1.定义点LatLng pt1 = new LatLng(39.93923, 116.357428);LatLng pt2 = new LatLng(39.91923, 116.327428);LatLng pt3 = new LatLng(39.89923, 116.347428);LatLng pt4 = new LatLng(39.89923, 116.367428);LatLng pt5 = new LatLng(39.91923, 116.387428);//2.定义自定义纹理(BitmapDescriptor)BitmapDescriptor custom1 = BitmapDescriptorFactory.fromResource(R.drawable.girl_1);BitmapDescriptor custom2 = BitmapDescriptorFactory.fromResource(R.drawable.girl_2);BitmapDescriptor custom3 = BitmapDescriptorFactory.fromResource(R.drawable.girl_3);//3.形成纹理队列.点队列.纹理索引队列List<LatLng> points = new ArrayList<>();List<BitmapDescriptor> customList = new ArrayList<>();List<Integer> indexs = new ArrayList<>();points.add(pt1);points.add(pt2);points.add(pt3);points.add(pt4);points.add(pt5);customList.add(custom1);customList.add(custom2);customList.add(custom3);indexs.add(0);indexs.add(0);indexs.add(1);indexs.add(2);indexs.add(3);//4.创建OverlaySooPoly,为折线添加点,纹理定制,纹理索引三个队列,,宽,颜色OverlayOptions ooPolyLine = new PolylineOptions().points(points).customTextureList(customList).textureIndex(indexs).width(10).color(0xAAFF00FF);//5.将折线段添加到地图中mBaiduMap.addOverlay(ooPolyLine);
3。自v3.6.0版本起,扩展了折线多段颜色绘制能力:增加支持分段纹理绘制、分段颜色绘制,构造PolylineOptions对象,添加折线分段颜色绘制覆盖物,核心代码如下:
//1.构造折线点坐标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));//2.构建分段颜色索引数组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));//3.为折线添加折线点坐标和分段颜色索引列表。。宽等OverlayOptions ooPolyline = new PolylineOptions().colorsValues(colors).points(points).width(10);//4.将折线段添加到地图中mBaiduMap.addOverlay(ooPolyline);
《二:文字覆盖物》
//1.定义文字所显示的坐标点LatLng llText = new LatLng(39.86923, 116.397428);//2.构建文字Option对象,用于在地图上添加文字 OverlayOptions ooText = new TextOptions().position(llText).text("百度地图").bgColor(0xAAFFFF00).fontSize(24).fontColor(0xFFFF0000);//3.在地图上添加该文字对象并显示mBaiduMap.addOverlay(ooText);
《三:弹出窗覆盖物》
//1.定义marker位置点LatLng point = new LatLng(39.963175, 116.400244);//2.定义标注物的图标BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);//3.定义标注物对象OverlayOptions ooD = new MarkerOptions().position(point).icon(bitmap);//4.将标注物添加到地图上mBaiduMap.addOverlay(ooD);//5.设置标注物的点击监听器 mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { public boolean onMarkerClick(Marker arg0) { //1.创建InfoWindow展示的view(此处Button) Button btn = new Button(getApplicationContext()); btn.setBackgroundResource(R.drawable.ic_launcher); //2.定义用于显示该InfoWindow的坐标点 LatLng pt = new LatLng(39.963175, 116.400244); //3.传入 view, 地理坐标, y 轴偏移量 创建InfoWindow , InfoWindow mInfoWindow = new InfoWindow(btn, pt, -47); //4.显示InfoWindow mBaiduMap.showInfoWindow(mInfoWindow); //默认即可 return false; } });
《四:地图类型》
//1.空白地图mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);//2.普通地图(默认)mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//3.卫星地图mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);*///4.实时交通图(有明显路线显示)mBaiduMap.setTrafficEnabled(true);//5.百度城市热力图mBaiduMap.setBaiduHeatMapEnabled(true);*/
《五:地图控制和手势》
1:地图Logo(默认放在左下方,)//1.1:设置地图Logo大体位置,可以放在 左上,左下;中上,中下;右上,右下 六个位置mMapView.setLogoPosition(LogoPosition.logoPostionCenterTop);//1.2:设置地图的绝对位置,距离 左上右下 多远mMapView.setPadding(10, 10, 200, 200);2:指南针和比例尺默认是开启状态(旋转地图可见指南针),可以关闭显示;可以设置最大比例和最小比例//2.1:设置最大比例和最小比例mBaiduMap.setMaxAndMinZoomLevel(arg0, arg1);//2.2:得到当前地图比例mMapView.getMapLevel();3:地图手势,地图平移,缩放,俯视(3D),旋转这四种默认是开启的,禁止所有手势默认是关闭的。
阅读全文
0 0
- 安卓开发-百度地图-几何图形覆盖物+文字覆盖物+弹出窗覆盖物+地图类型+地图控制和手势
- 百度地图----地图覆盖物
- 百度地图覆盖物
- 百度地图覆盖物
- 安卓开发-百度地图-标注覆盖物
- [Android]百度地图之几何标注和文字覆盖物
- 百度地图中的覆盖物
- 百度地图标注覆盖物
- 百度地图覆盖物功能
- 百度地图&&覆盖物OverlayOptions
- 百度地图之覆盖物
- 百度地图添加覆盖物
- 百度地图自定义覆盖物
- 百度地图覆盖物id
- 百度地图自定义覆盖物
- 百度地图自定义覆盖物
- android开发游记:百度地图SDK路线规划和自定义地图UI覆盖物及弹出窗
- 百度地图覆盖物和定位覆盖物
- tensorflow Lenet5手写字体识别模型的保存与加载
- Java(3-2)
- C语言实验——温度转换
- 行人再识别:平安城市添利器
- Varnish相关功能实现
- 安卓开发-百度地图-几何图形覆盖物+文字覆盖物+弹出窗覆盖物+地图类型+地图控制和手势
- 关于C语言中的内存分区
- 使用robocopy进行5T文件带权限的迁移
- 第一个Hadoop程序WordCount
- Java反射机制(框架基础)
- 【Oracle】plsql连接64位的Oracle
- eclipse中添加约束文件的两种方式(以dubbo.xsd文件为例)
- java常用的包
- Java300StudyNote(11)-1张表看懂二进制、八进制、十进制、十六进制