百度地图 Android SDK - 标注(Marker)的基本使用

标注(Marker)是开发者最常使用的地图覆盖物志一,今天就来向大家介绍一些标注(Marker)的最基本使用方法!

实现目标:

1、构建基础地图页面;

2、在地图的中心点处添加 Marker;

3、实现 Marker 的点击事件响应;

4、实现 Marker 的添加和灵活删除;

为了实现以上目标,我们会分成以下若干步骤来进行。

第一步、创建工程,导入百度地图 Android SDK;

具体创建工程的方式(略)。本示例主要是为了实现地图及相关的覆盖物功能,因此这里我只使用 SDK 开发资源下载平台所提供的【基础地图】功能模块即可。

相应下载地址为:http://lbsyun.baidu.com/sdk/download

勾选如图所示:

选择完成后,点击开发包下载,将所下载开发包正确导入开发工程。

第二步、申请开发者秘钥;

工程创建完成后,到 API 控制台,申请相应的开发秘钥,为具体开发工作准备。

具体申请方式及注意事项,请参考:http://blog.csdn.net/callmesen/article/details/39523767  此处不再赘述。

第三步、修改 AndroidManifest 文件,添加开发秘钥和所需权限;

在 AndroidManifest 文件中,添加开发秘钥和所需权限。

添加开发秘钥方式如下:

    	<meta-data
        	android:name="com.baidu.lbsapi.API_KEY"
        	android:value="开发秘钥!" />

注意在 application 里面。

添加所需权限如下:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

第四步、创建基础地图;

在 xml 文件中添加 mapview 控件,如下所示:

    <com.baidu.mapapi.map.MapView
    	android:id="@+id/bmapView"
    	android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
    	android:clickable="true" />

在 java 代码中初始化地图 SDK,实现基础地图的展示:

//初始化地图 SDK
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//绑定XML中得 mapview 控件
mapView = (MapView) findViewById(R.id.bmapView);

第五步、获取地图中心点,并添加 Marker 对象;

实现的核心代码如下:

baiduMap = mapView.getMap();
LatLng latLng = baiduMap.getMapStatus().target;
//准备 marker 的图片
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);
//准备 marker option 添加 marker 使用
markerOptions = new MarkerOptions().icon(bitmap).position(latLng);
//获取添加的 marker 这样便于后续的操作
marker = (Marker) baiduMap.addOverlay(markerOptions);

第六步、实现 Marker 的点击事件响应;

利用 baidumap 对象的地图监听方法,实现针对 marker 的点击响应,核心代码如下:

	//对 marker 添加点击相应事件
	baiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {

		@Override
		public boolean onMarkerClick(Marker arg0) {
			// TODO Auto-generated method stub
			Toast.makeText(getApplicationContext(), "Marker被点击了!", Toast.LENGTH_SHORT).show();
			return false;
		}
	});

第七步、利用 Button 控件,控制 Marker 的添加删除;

这里用 button 来控制在地图上添加 或者 删除一个 marker,首先在 xml 中添加一个 button 控件:

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="删除Marker" />

在 java 代码中添加这个 button 的点击事件响应,核心代码如下:

	//按钮控制添加删除 button
	button.setOnClickListener(new View.OnClickListener() {

		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub

			if(button.getText() == "添加Marker")
			{
				marker = (Marker) baiduMap.addOverlay(markerOptions);
				button.setText("删除Marker");
			}
			else
			{
				marker.remove();
					button.setText("添加Marker");
			}
		}
	});

通过以上的操作,就可以实现相应的 marker 添加,marker 点击响应,marker 删除等操作。

时间: 2024-10-21 05:51:27

百度地图 Android SDK - 标注(Marker)的基本使用的相关文章

百度地图 Android SDK - 新的版本号(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 在版本号 2014 年 11 月 07 日本正式推出工作完成! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FsbG1lc2Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 在这个版本号中.我们主要为广大开发人员开放了百度城市热力图层,帮助开发人员构建形式更加丰富的地图应用! 那么这里可能

百度地图 Android SDK - 检索功能使用的简单示例

百度地图 SDK 不仅为广大开发者提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发者提供了多种 LBS 检索的能力.通过这些接口,开发者可以轻松的访问百度的 LBS 数据,丰富自己的移动端地图应用. 目前百度地图 SDK 为开发者提供的检索服务有: POI 检索:可以检索百度 POI 数据信息: 线路规划:利用百度的引擎帮助开发者规划线路: 在线建议检索.短链接分享.地理编码等等.... 本文将以一个很简单的 POI 城市内检索为例,像广大开发者介绍接口的使用. 第一步,选择并下载 SD

百度地图 Android SDK - Hello Baidu Map

如下内容主要向广大开发者介绍如何利用百度地图Android SDK来构建一个最基本的地图应用! 第一步,创建Android工程,将百度地图Android SDK的开发包导入到工程相应位置: 在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示: 注:l

Android 关于百度地图Android SDK几处修正使用说明(非官方)

本篇主要是因为最近在学习使用百度地图,发现了一些问题,跟大伙分享一下. 1.根据android sdk开发指南中"Hello World"的例子,构建一个基础的地图页面,如果大家完全按照示例代码中所写的那样,是不会执行成功的,会有以下问题的错误提示"java.lang.RuntimeException: Unable to instantiate activity ComponentInfo" 这个问题出现的原因是 在第二步,配置Activity部分,android

分享:百度地图Android SDK开发指南

最新的百度地图(v3.2)下载包中居然没有开发指南,自己整理了一下网页版的百度地图Android SDK开发指南,分享给和自己一样需要Demo的学生党.下载链接: http://pan.baidu.com/s/1jGqYF5c 密码: wpf9.

百度地图 Android SDK - 新版本(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 版本于 2014 年 11 月 07 日完成正式上线工作! 在这个版本中,我们主要为广大开发者开放了百度城市热力图层,帮助开发者构建形式更加丰富的地图应用! 那么这里可能一些细心的开发者就会有疑问了,曾经的 v3.1.0 版本貌似就有一个什么热力图,这两个之间是怎么回事,有什么区别呢?别急,听我慢慢道来: v3.1.0 版本所开放的是热力图的绘制能力,说白了就是你来给我们提供数据,我们来帮助您实现本地的一个热力图绘制,最主要的前提是由开发者传入位置

百度地图 Android SDK - 坐标转换方法

百度地图 Android SDK 或者 iOS SDK 或者各种各样的 API 工具产品,都使用的是百度自己经过加密的坐标体系. 众多开发者在使用过程中,位置点都是通过 GPS 或者其他途径获取的,所以与百度地图所使用的坐标系存在差异. 开发者在将这些空间位置信息运用到地图地图上得时候,需要进行响应的纠偏(坐标转换),Android SDK 为广大开发者早已开放了响应的坐标转换方法, 开发者只需要短短的几行代码就可以实现相应的坐标转换操作了. 具体方法如下: // 将google地图.soso地

百度地图 Android SDK - 个性化地图

什么是百度个性化地图Android SDK? 百度个性化地图Android SDK是一套基于Android 2.2及以上版本设备的应用程序接口,您可以通过该套接口实现基本的地图功能,并且可以定制地图样式,实现个性化地图. 该接口提供以下功能: 1.基本地图:提供地图(2D.3D)的展示和缩放.平移.旋转.改变视角等地图操作: 2.个性化地图:可以更改地图样式,让您的地图与众不同,实现个性化定制: 3.覆盖物:提供常见地图覆盖物(自定义标注.几何图形等),满足开发者的各种需求: 4.坐标映射:提供

百度地图 Android SDK - 申请开发密钥

在使用百度LBS开放平台为广大开发者提供的各种服务之前,都需要一个开发密钥(AK / Key),用于标识自己的完整合法性,同时也有效的保护了自身的使用安全.下面主要跟大家讲一下Android移动端的开发密钥申请等问题. 百度LBS开放平台的官方地址为:http://developer.baidu.com/map 开发密钥,即API控制台的地址为:http://lbsyun.baidu.com/apiconsole/key 首选对百度LBS开放平台Android端的产品做个简单的介绍: Andro