百度地图 Android SDK - 标注(Marker)的基本使用
来源:互联网 发布:recyclerview如何优化 编辑:程序博客网 时间:2024/05/30 23:53
标注(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,实现基础地图的展示:
//初始化地图 SDKSDKInitializer.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() {@Overridepublic boolean onMarkerClick(Marker arg0) {// TODO Auto-generated method stubToast.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 的点击事件响应,核心代码如下:
//按钮控制添加删除 buttonbutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(button.getText() == "添加Marker"){marker = (Marker) baiduMap.addOverlay(markerOptions);button.setText("删除Marker");}else {marker.remove();button.setText("添加Marker");}}});
通过以上的操作,就可以实现相应的 marker 添加,marker 点击响应,marker 删除等操作。
- 百度地图 Android SDK - 标注(Marker)的基本使用
- 百度地图 Android SDK - 标注(Marker)的基本使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- Android 百度地图sdk 标注图marker中可以切换显示不同内容
- Effective C++ Item 4 确定对象被使用前已先被初始化
- 关于unity的Coroutine
- 数学数分类
- freemarker中list常用处理方法
- error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW
- 百度地图 Android SDK - 标注(Marker)的基本使用
- 针对同一种类型的括号匹配问题
- 易飞9.07衍生字段删除问题
- 接口编程(webservice和post)
- Python函数参数,值传递?
- 安装 CouchBase
- 黑马程序员_IO流
- http body与header设置与获取
- 开发mysql程序(linux下eclipse)