如何把百度地图应用到安卓中
2015-09-28 18:16
281 查看
现如今,地图类软件在生活中是不可或缺的,给我们出行带来了极大的便利。那么就让我们来看看怎样实现把百度地图导入到我们的app中吧!
1.申请密钥
http://developer.baidu.com/map/index.php?title=androidsdk
进入网页,到达当前位置:Android动图SDK。这一页需要登陆,如果没用账号的话需要注册。
找到获取密钥这一栏,点击进入LBS开放平台。点击创建应用按钮,会出现这样一个对话框
应用名称随便填,应用类型选择for mobile。
安全码相当重要,由 数字签名+“;”+包名。
数字签名的获取方法:如果使用eclipse,打开eclipse--->打开Window-->打开preferences-->点击Android--->打开Build
我们所需要的数字签名就是SHA1的数字签名。
然后复制下来按上面的格式填写就ok了,包名当然是你需要导入地图的app的包名。
点击确认,可以看见应用创建成功。复制访问应用的ak(API KEY)
再次进入百度地图sdk的网站,点击相关下载-->点击全部下载-->选择需要的功能-->下载开发包和示例代码。
完成下载后
进入http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
按照该网页提供的步骤进行就OK了!~
显示地图的布局文件
导入地图的参考代码
现如今,地图类软件在生活中是不可或缺的,给我们出行带来了极大的便利。那么就让我们来看看怎样实现把百度地图导入到我们的app中吧!
1.申请密钥
http://developer.baidu.com/map/index.php?title=androidsdk
进入网页,到达当前位置:Android动图SDK。这一页需要登陆,如果没用账号的话需要注册。
找到获取密钥这一栏,点击进入LBS开放平台。点击创建应用按钮,会出现这样一个对话框
应用名称随便填,应用类型选择for mobile。
安全码相当重要,由 数字签名+“;”+包名。
数字签名的获取方法:如果使用eclipse,打开eclipse--->打开Window-->打开preferences-->点击Android--->打开Build
我们所需要的数字签名就是SHA1的数字签名。
然后复制下来按上面的格式填写就ok了,包名当然是你需要导入地图的app的包名。
点击确认,可以看见应用创建成功。复制访问应用的ak(API KEY)
再次进入百度地图sdk的网站,点击相关下载-->点击全部下载-->选择需要的功能-->下载开发包和示例代码。
完成下载后
进入http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
按照该网页提供的步骤进行就OK了!~
显示地图的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.baidu.mapapi.map.MapView android:id="@+id/id_bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </RelativeLayout>
导入地图的参考代码
import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.Window; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.model.LatLng; public class MainActivity extends Activity { private MapView mMapview; private BaiduMap mbaidumap; private Context context; //定位 private LocationClient mLocationclient; private MyLocationListener mLocationlistener; private boolean isFirstIn=true; private double mLatitude; private double mLongtitude; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); this.context=this; initView(); initLocation();//初始化定位 } private void initLocation() { mLocationclient=new LocationClient(this); mLocationlistener=new MyLocationListener(); mLocationclient.registerLocationListener(mLocationlistener);//注册 LocationClientOption option = new LocationClientOption(); option.setCoorType("bd09ll"); option.setIsNeedAddress(true);//返回一下当前位置 option.setOpenGps(true); option.setScanSpan(1000);//每秒钟请求一次 mLocationclient.setLocOption(option); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapview.onResume(); } @Override protected void onStart() { super.onStart(); //开启定位 mbaidumap.setMyLocationEnabled(true); if(!mLocationclient.isStarted()) mLocationclient.start(); } @Override protected void onStop() { super.onStop(); //停止定位 mbaidumap.setMyLocationEnabled(false); mLocationclient.stop(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapview.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapview.onDestroy(); } private void initView() { mMapview=(MapView)findViewById(R.id.id_bmapView); mbaidumap=mMapview.getMap(); MapStatusUpdate mus=MapStatusUpdateFactory.zoomTo(15.0f); mbaidumap.setMapStatus(mus); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.id_map_common: mbaidumap.setMapType(BaiduMap.MAP_TYPE_NORMAL); break; case R.id.id_map_site: mbaidumap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); break; case R.id.id_map_traffic: if(mbaidumap.isTrafficEnabled()) { mbaidumap.setTrafficEnabled(false); item.setTitle("实时交通(off)"); } else { mbaidumap.setTrafficEnabled(true); item.setTitle("实时交通on"); } break; case R.id.id_map_location: LatLng latlng =new LatLng(mLatitude,mLongtitude); MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latlng); mbaidumap.animateMapStatus(msu); break; default: break; } return super.onOptionsItemSelected(item); } private class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { MyLocationData date =new MyLocationData.Builder()// .accuracy(location.getRadius())// .latitude(location.getLatitude())// .longitude(location.getLongitude()).build(); mbaidumap.setMyLocationData(date); //MyLocationConfiguration config=new MyL //ocationConfiguration(LocationMode., arg1, arg2) mLatitude=location.getLatitude(); mLongtitude=location.getLongitude(); if(isFirstIn) { LatLng latlng =new LatLng(location.getLatitude(),location.getLongitude() ); MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latlng); mbaidumap.animateMapStatus(msu); isFirstIn=false; Toast.makeText(context, location.getAddrStr(), Toast.LENGTH_LONG).show(); } } } }
相关文章推荐
- 关于启动Aptana studio弹出failed to load the jni shared library
- SQL Server 2005数据库日志丢失的恢复
- 手机防盗2
- Java垃圾回收机制
- scala VS python2 (linux or shell)
- Linux_屏蔽360、scanv、QQ管家等IP扫描
- Linux系统--Linux的Grub应用
- 正确使用Android性能分析工具——TraceView
- C#的几种压缩文件方法
- C#: .net序列化及反序列化 [XmlElement(“节点名称”)] [XmlAttribute(“节点属性”)] (下篇)
- mogilefs安装配置详解
- FMDB数据库升级增加表字段
- 计算机专业该不该读研
- C#: .net序列化及反序列化 [XmlElement(“节点名称”)] [XmlAttribute(“节点属性”)] (上篇)
- Nginx -- Rewrite
- java之路
- UVA 1025 A Spy in the Metro
- 地震波的种类 gif动画演示
- Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
- JQuery拖拽排序