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 音视频开发(一) ...
随机推荐
- RHEL7-使用Apache服务部署静态网站
1. 安装Apache服务程序 1.1 在虚拟机中选中光盘镜像,并设置连接 1.2 将光盘设备挂载到/media/cdrom目录 [root@localhost ~]# mkdir -p /media ...
- 不带缓存的I/O和标准(带缓存的)I/O
首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的 ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- MYSQL数据库错误代码提示汇总
Mysql出错代码表 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1 ...
- ISE MAP报错: Unsupported programming for BSCAN block and JTAG_CHAIN attribute value 1的解决方法
2014-04-16 17:35:30 ISE MAP报错: Unsupported programming for BSCAN block and JTAG_CHAIN attribute valu ...
- 如何添加或删除ubuntu用户和组【转】
转自:http://blog.csdn.net/sin90lzc/article/details/7525670 在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个 ...
- JQuery Selectors 方法说明
基本选择器 $("#myDiv") 匹配唯一的具有此id值的元素 $("div") 匹配指定名称的所有元素 $(".myClass") 匹配 ...
- ARM指令集相关知识
1.ARMv8引入了执行状态机制,分为AArch32和AArch64 AArch32为T32(Thumb)和A32(ARM). AArch64为A64一种指令集 A64和A32的指令都是32位宽,可以 ...
- JavaScript 中 2个等号(==)和 3个等号(===)之间的区别
JavaScript(JS)中有3个和等号(=)相关的操作符:赋值运算符(=).等于(==).恒等于(===). 赋值运算符不多说了. 这里说说等于和恒等于. ==,等于:两边值类型不同的时候,会自动 ...
- What is Entity Framework?
1.什么是EntityFramework? http://www.entityframeworktutorial.net/what-is-entityframework.aspx Writing an ...