android开发之学会使用百度地图
2015-06-04 19:37
537 查看
使用地图的目的
现在开发android应用,许多时候都会遇到要使用地图,因此,掌握地图的开发是必须的。我也一直想学学如何使用地图,于是趁有时间,就认真学了一遍使用地图。呵呵,感觉蛮爽。下面我们就以百度地图的使用为例,讲解如何使用地图。准备工作
使用百度地图前先要申请密钥(API Key)
打开电脑浏览器:百度首页更多-->站长与开发者服务(APIStore 点击进入)-->地图-->百度地图-->进入官网【http://developer.baidu.com/map/】在这个官网,我们先要注册成为开发者,然后才能申请密钥,申请密钥在官网首页的最下面,看到了点击,然后进入:
创建应用点击之后,会有空让我们填。应用名称随便填(最好填新建的android项目名 如helloworld),应用类型选择Android SDK。最重要的就是安全码填写,它由【数字签名;包名】这种格式组成。数字签名:点击eclipse中的Window-->Preferences
箭头所指的SHA1后面的一串字符就是我们需要的数字签名,包名就是andorid项目AndroidManifest.xml中package后面的一串字符:
填好之后就能获得百度地图的密钥(API Key 简称AK),如下图:
密钥搞定,再去把百度地图Android SDK下载,放到项目中就可以进行百度地图的开发了。
下载百度地图Android SDK
还是在:百度首页更多-->站长与开发者服务(APIStore 点击进入)-->地图-->百度地图-->进入官网【http://developer.baidu.com/map/】,官网下面有一个Android开发,点击SDK下载:SDK开发包的功能可自由组合,我就选了一个基础地图--->点击开发包-->然后就下了。解压缩会有一个libs文件夹,里面文件位置别动,就按这个位置放到android项目中的libs包下SDK就导入成功了。
————>
然后,我们就可以顺利的使用百度地图开发啦!
使用百度地图
1.在AndroidManifest.xml中添加开发秘钥和所需权限。<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="填写你申请的AK" />权限:
<!-- 百度API所需权限 --> <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" />2. 在布局文件中添加地图控件:
<com.baidu.mapapi.map.MapView android:id="@+id/bmapview" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" />3.修改MainActivity.java
package com.example.maptest; import java.util.ArrayList; import java.util.List; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BaiduMap.OnMapDrawFrameCallback; import com.baidu.mapapi.map.BaiduMap.OnMarkerDragListener; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.Marker; import com.baidu.mapapi.map.MarkerOptions; import com.baidu.mapapi.map.OverlayOptions; import com.baidu.mapapi.map.PolygonOptions; import com.baidu.mapapi.map.Stroke; import com.baidu.mapapi.map.TextOptions; import com.baidu.mapapi.model.LatLng; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; public class MainActivity extends Activity { MapView mMapView = null; BaiduMap mBaiduMap = null; Marker marker = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//显示普通2D图 //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//显示卫星图 //mBaiduMap.setTrafficEnabled(true);//开启交通图 //mBaiduMap.setBaiduHeatMapEnabled(true);//开启百度热力图 LatLng point = new LatLng(39.963175, 116.400244);//定义marker坐标 BitmapDescriptor bitmap1 = BitmapDescriptorFactory .fromResource(R.drawable.zzlx1);//构建一个位图marker图标 BitmapDescriptor bitmap2 = BitmapDescriptorFactory .fromResource(R.drawable.zzlx2); BitmapDescriptor bitmap3 = BitmapDescriptorFactory .fromResource(R.drawable.zzlx3); //OverlayOptions option = new MarkerOptions() //.position(point).icon(bitmap);//构建一个MarkerOption对象 //mBaiduMap.addOverlay(option);//在百度地图上添加marker,并显示 //OverlayOptions option = new MarkerOptions() //.position(point).icon(bitmap).zIndex(9).draggable(true); //mBaiduMap.addOverlay(option); //自v3.3.0版本起,SDK提供了给Marker增加帧动画的能力,具体实现方法如下: // ArrayList<BitmapDescriptor> giflist = new // ArrayList<BitmapDescriptor>(); // giflist.add(bitmap1); // giflist.add(bitmap2); // giflist.add(bitmap3); // // OverlayOptions option = new MarkerOptions() // .position(point).icons(giflist).draggable(true) // .zIndex(9).period(6); // mBaiduMap.addOverlay(option); //几何图形覆盖物(多边形 为例) // LatLng pt1 = new LatLng(39.93923, 116.357428); // LatLng pt2 = new LatLng(39.91923, 116.327428); // LatLng pt3 = new LatLng(39.89923, 116.347428); // LatLng pt4 = new LatLng(39.89923, 116.367428); // LatLng pt5 = new LatLng(39.91923, 116.387428); // List<LatLng> pts = new ArrayList<LatLng>(); // pts.add(pt1); // pts.add(pt2); // pts.add(pt3); // pts.add(pt4); // pts.add(pt5); // //构建用户绘制多边形的Option对象 // OverlayOptions polygonOption = new PolygonOptions() // .points(pts).stroke(new Stroke(5, 0xAA00FF00)).fillColor(0XAAFFFF00); // mBaiduMap.addOverlay(polygonOption);//百度地图绘制多边形,并显示 //文字覆盖物 LatLng text = new LatLng(39.86923, 116.397428); OverlayOptions textOption = new TextOptions() .bgColor(0xaaffff00).fontSize(24).fontColor(0xffff00ff) .text("此树是我栽,此路是我开!").rotate(-30).position(text); mBaiduMap.addOverlay(textOption); } }
4.运行程序,就可以看到百度地图的一些效果啦!
注意:MainActivity.java中这些代码都是我按照百度的范例写的,你也可以只在MainActivity.java中添两行代码运行程序看效果:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); }
补充:
(1)这里我只简单的学习了百度地图,要想熟练使用,还需多多实战才行!(2)没事一步一步学,网址:百度地图SDK的使用,把下图中的红框内容看一遍基本就差不多了,然后就是不断使用直到熟练运用它。
源代码下载,请点击这里
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories