Android百度地图开发(二)地图覆盖物
上一篇文章写道如何在一个mapview中简单的显示地图;本次学习一下如何在地图上添加一些覆盖物。
1.设置显示交通地图:
// 显示交通地图
mapView.setTraffic(true);
2.设置显示为卫星地图:
// 显示交通地图
//mapView.setTraffic(true); // 显示卫星地图
mapView.setSatellite(true);
当然卫星地图和交通地图也可以同时显示
3.百度地图提API供了一下几种覆盖物
// MyLocationOverlay:负责显示用户当前位置
// PoiOverlay:本地搜索图层,提供某一特定区域的位置搜索服务
// RouteOverlay:不行、驾车导航线路图层,将步行、驾车出行方案的线路及关键点显示在地图上。
// TransitOverlay:公交换乘路线图层,将某一特定区域的公交出行方案的线路及换乘位置显示在地图上
4.给一个覆盖物添加一些标注
public class MyOverlay extends Overlay { // 用来显示当前的经纬度
private GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1E6),
(int) (116.404 * 1E6)); //声明一个画笔
private Paint paint = new Paint(); @Override
public void draw(Canvas arg0, MapView arg1, boolean arg2) {
// TODO Auto-generated method stub
super.draw(arg0, arg1, arg2); Point point = mapView.getProjection().toPixels(geoPoint, null);
arg0.drawText("*这里是天安门*", point.x, point.y, paint);
} }
然后在MainActivity中将这个点添加进去
mapView.getOverlays().add(new MyOverlay());
5.给多个覆盖物添加标注
@SuppressLint("NewApi")
public class MyOverlayItem extends ItemizedOverlay<OverlayItem> { private List<OverlayItem> list = new ArrayList<OverlayItem>();
// 定义一个坐标,double类型
private double mLat1 = 39.90923; // 表示经度
private double mLon1 = 116.397428;// 表示纬度 private double mLat2 = 39.9022; // 表示经度
private double mLon2 = 116.3922;// 表示纬度 private double mLat3 = 39.917723; // 表示经度
private double mLon3 = 116.37222;// 表示纬度 // 用于在地图上标识坐标,用一个图片标注
public MyOverlayItem(Drawable arg0) {
super(arg0);
// TODO Auto-generated constructor stub GeoPoint geoPoint1 = new GeoPoint((int) (mLat1 * 1E6),
(int) (mLon1 * 1E6)); GeoPoint geoPoint2 = new GeoPoint((int) (mLat2 * 1E6),
(int) (mLon2 * 1E6)); GeoPoint geoPoint3 = new GeoPoint((int) (mLat3 * 1E6),
(int) (mLon3 * 1E6)); // 分别在list中把这几个点添加进去
list.add(new OverlayItem(geoPoint1, "Point01", "Point01"));
list.add(new OverlayItem(geoPoint2, "Point02", "Point02"));
list.add(new OverlayItem(geoPoint3, "Point03", "Point03")); //地图刷新的功能
populate(); } // 返回制定的list集合中每一个坐标
@Override
protected OverlayItem createItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
} // 返回地图上点的个数
@Override
public int size() {
// TODO Auto-generated method stub
return list.size();
} @Override
public boolean onTap(int i) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, list.get(i).getSnippet(),
1).show();
return true;
} }
然后在MainActivity中添加一下代码(需要在项目中导入一张图片,命名为:iconmarka):
Drawable drawable = getResources().getDrawable(R.drawable.iconmarka);
mapView.getOverlays().add(new MyOverlayItem(drawable));
最终效果图:
Android百度地图开发(二)地图覆盖物的更多相关文章
- C#的百度地图开发(二)转换JSON数据为相应的类
原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON ...
- 百度地图开发-引入地图SDK并配置 02
百度地图开发-引入地图SDK并配置 02 通过上一篇文章的介绍,基本了解百度地图的基本信息,接下来就让我们一起来实际在项目中操作,显示出地图. 01 引入地图SDK 首先需要新建一个空白的Androi ...
- Android Camera系列开发 (二)通过Intent录制视频
Android Camera系列开发 (二)通过Intent录制视频 作者:雨水 2013-8-18 CSDN博客:http://blog.csdn.net/gobitan/ 概述 使用Camera ...
- Android地图开发之地图的选择
做lbs开发差不多快2年了,地图相关的产品也差不多做了3个了,用到过的地图包括google地图.高德地图.百度地图.图吧.Osmdroid,今天总结下,方便大家开发时选择合适的地图. 首先说定位模块选 ...
- Android 实践项目开发二
在地图开发中项目中,我这周主要完成的任务是和遇到的问题是以下几个方面. 1.在本次的项目中主要是利用百度地图的.jar包实现地图的定位与搜索功能,需要在百度地图开发中心网站取得 密钥,并下载相关.ja ...
- Android 音视频开发(二):使用 AudioRecord 采集音频数据并保存到文件
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...
- Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...
- C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息
原文:C#的百度地图开发(三)依据坐标获取位置.商圈及周边信息 我们得到了百度坐标,现在依据这一坐标来获取相应的信息.下面是相应的代码 public class BaiduMap { /// < ...
- C#的百度地图开发(一)发起HTTP请求
原文:C#的百度地图开发(一)发起HTTP请求 百度地图的开发文档中给出了很多的事例,而当用到具体的语言来开发时,又会有些差异.我是使用C#来开发的.在获取相应的数据时,需要通过URL传值,然后获取相 ...
- Android 音视频开发学习思路
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...
随机推荐
- Android java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor ver
java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor ver 解决 ...
- JBoss 性能优化(解决Jboss内存紧张的问题)
修改$JBOSS_HOME/bin/run.conf文件 JAVA_OPTS="-Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap&q ...
- C语言ASM汇编内嵌语法【转】
转自:http://www.cnblogs.com/latifrons/archive/2009/09/17/1568198.html GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作G ...
- html5 audio音频播放全解析
序 html5开启了一个新时代,因为它让浏览器本身变得不那么被动,audio api就是一个典型的列子,在html5还没确定之前,如果想要在网页上听音乐看视频唯一的办法就是用flash意思是当你没有给 ...
- php面向对象(一) 初窥
初窥php面向对象 1.类:类就是属性和方法的集合 是一个抽象的概念比如生活中的“人”,"汽车"2.对象:对象是具体的事物 比如一叫“小强”的人 一辆叫“奥迪a7”的汽车3.类和对 ...
- JS通用方法总结(一)
/** * id数组转换为json字符串 */ function arrayTojson(arr) { var jsonIds = "["; for ( var i = 0; i ...
- java 求取某一段时间内的每一天、每一月、每一年
1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...
- Navicat数据存放位置和备份数据库路径设置
navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom” ...
- 函数fsp_fill_free_list
/**********************************************************************//** Puts new extents to the ...
- git plumbing 更加底层命令解析-深入理解GIT
原文: http://rypress.com/tutorials/git/plumbing 本文详细介绍GIT Plumbing--更加底层的git命令,你将会对git在内部是如何管理和呈现一个项目r ...