android 百度地图标记坐标问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 百度地图标记坐标问题相关的知识,希望对你有一定的参考价值。
android 百度地图标记坐标问题用android编写一个在百度地图上显示附近加油站的程序 例如已经得出加油站的经纬度为(26,55) 要怎么再百度地图上标记这个点 而且要实现点击这个标记时要产生相应的事件
1、构建基础地图页面;2、在地图的中心点处添加 Marker;
3、实现 Marker 的点击事件响应;
4、实现 Marker 的添加和灵活删除;
为了实现以上目标,我们会分成以下若干步骤来进行。
第一步、创建工程,导入百度地图 Android SDK;
具体创建工程的方式(略)。本示例主要是为了实现地图及相关的覆盖物功能,因此这里我只使用 SDK 开发资源下载平台所提供的【基础地图】功能模块即可。
选择完成后,点击开发包下载,将所下载开发包正确导入开发工程。
第二步、申请开发者秘钥;
工程创建完成后,到 API 控制台,申请相应的开发秘钥,为具体开发工作准备。
具体申请方式及注意事项,请参考:http://blog.csdn.net/callmesen/article/details/39523767 此处不再赘述。
第三步、修改 AndroidManifest 文件,添加开发秘钥和所需权限;
在 AndroidManifest 文件中,添加开发秘钥和所需权限。
添加开发秘钥方式如下:
[html] view plain copy
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发秘钥!" />
注意在 application 里面。
添加所需权限如下:
[html] view plain copy
<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 控件,如下所示:
[html] view plain copy
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_
android:layout_
android:clickable="true" />
在 java 代码中初始化地图 SDK,实现基础地图的展示:
[java] view plain copy
//初始化地图 SDK
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//绑定XML中得 mapview 控件
mapView = (MapView) findViewById(R.id.bmapView);
第五步、获取地图中心点,并添加 Marker 对象;
实现的核心代码如下:
[java] view plain copy
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 的点击响应,核心代码如下:
[java] view plain copy
//对 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 控件:
[html] view plain copy
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="删除Marker" />
在 java 代码中添加这个 button 的点击事件响应,核心代码如下:
[java] view plain copy
//按钮控制添加删除 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 删除等操作。 参考技术A 都,,,,
android开发 百度地图3.0以上版本,如何显示自定义标记图标?
在开发android 百度地图的过程中,我已经可以成功定位到某个坐标的地图,但是我要自定义一个图标,让它显示在地图上定位的地方,不知道要如何实现?
//定义Maker坐标点LatLng point = new LatLng(39.963175, 116.400244);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.icon_marka);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);追问
高手,好崇拜你啊,求q-q,加一个方便请教你哦...
参考技术A 你这是添加覆盖物的方法,只能实现在地图上显示这个点,如果位置发生改变,用你的方法地图上的点并不能实时改变,这方法不好! 参考技术B 看百度的api 和demo 啊以上是关于android 百度地图标记坐标问题的主要内容,如果未能解决你的问题,请参考以下文章