Android 百度地图开发 应用到自己的项目中
2015-08-25 18:00
701 查看
研究了两天的百度地图,下面是我的博客,大家一起学习啊
第一步:申请百度地图的API key
申请地址http://developer.baidu.com/map/index.php?title=首页(前提要有自己的百度账号)
![](https://img-blog.csdn.net/20150825180658588?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150825181625942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150825181625942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150825181724699?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意:安全码的问题,如下图所示,一步一步来,便可以得到自己想要的东西
![](https://img-blog.csdn.net/20150825182048306?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150825183417375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
安全码是Android签名证书的证书指纹 (SHA1)值 + “;” + 你的应用程序包名,所以当你配置好了API key 你不能随意更换应用程序的包名, 如果更换了包名我们需要重新配置API key,接下来我们来介绍怎么获取数字签名
我们知道我们开发的Android程序是需要给他签名的,如果没有签名是不允许被安装到手机或者模拟器的,那么你会有疑问,我平常开发的应用确实没签名,怎么能在模拟器或者手机上直接运行呢,其实ADT会自动的使用debug密钥为应用程序签名,当然你也可以自己创建一个属于你自己的密钥,直接用Eclipse可视化创建就行了,很方便的,这里我就不介绍了
这里我们用debug.keystore来生成Android签名证书的证书指纹 (SHA1)值,可以在eclipse中直接查看:winows
-> preferance -> android -> build。 如下图示:
![](https://img-blog.csdn.net/20150825183029847?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
红色框框里面的东西就是我们需要的Android签名证书的证书指纹
(SHA1)值,然后我们复制出来,输入到API key的安全码输入框里面,再用分号隔开加上你的应用程序包名,如 02:5C:80:25:B2:8F:6F:60:54:B9:F4:B2:EF:94:FF:EE:CC:3C:5A:29;com.example.baidumapdemo 这样子我们就配置好了API key。
上面是eclipse的查找法,因为我用的是idea,所以有用idea的同学可以参考:
http://www.eoeandroid.com/thread-567929-1-1.html
以上讲的都是两种方法,根据自己的情况可以定。
第二步:下载百度地图库
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,下载地址http://developer.baidu.com/map/sdkandev-download.htm,下载Android
SDKv2.1.3 lib库就行了
第三步:应用到自己的项目中去
1.布局文件
activity_main.xml
2.代码的实现部分
具体的代码部分可以下载源码看
![](https://img-blog.csdn.net/20150825184611000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.AndroidManifest.xml权限的添加
android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <!-- 百度地图服务START --> <service android:name="com.baidu.location.f"
android:enabled="true" android:process=":remote" > </service> <!-- 百度地图服务end --> </application></manifest>
运行结果:
![](https://img-blog.csdn.net/20150825190121359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
源码地址:
http://download.csdn.net/detail/csdnyuandaimaxuexi/9048135
第一步:申请百度地图的API key
申请地址http://developer.baidu.com/map/index.php?title=首页(前提要有自己的百度账号)
注意:安全码的问题,如下图所示,一步一步来,便可以得到自己想要的东西
安全码是Android签名证书的证书指纹 (SHA1)值 + “;” + 你的应用程序包名,所以当你配置好了API key 你不能随意更换应用程序的包名, 如果更换了包名我们需要重新配置API key,接下来我们来介绍怎么获取数字签名
我们知道我们开发的Android程序是需要给他签名的,如果没有签名是不允许被安装到手机或者模拟器的,那么你会有疑问,我平常开发的应用确实没签名,怎么能在模拟器或者手机上直接运行呢,其实ADT会自动的使用debug密钥为应用程序签名,当然你也可以自己创建一个属于你自己的密钥,直接用Eclipse可视化创建就行了,很方便的,这里我就不介绍了
这里我们用debug.keystore来生成Android签名证书的证书指纹 (SHA1)值,可以在eclipse中直接查看:winows
-> preferance -> android -> build。 如下图示:
红色框框里面的东西就是我们需要的Android签名证书的证书指纹
(SHA1)值,然后我们复制出来,输入到API key的安全码输入框里面,再用分号隔开加上你的应用程序包名,如 02:5C:80:25:B2:8F:6F:60:54:B9:F4:B2:EF:94:FF:EE:CC:3C:5A:29;com.example.baidumapdemo 这样子我们就配置好了API key。
上面是eclipse的查找法,因为我用的是idea,所以有用idea的同学可以参考:
http://www.eoeandroid.com/thread-567929-1-1.html
以上讲的都是两种方法,根据自己的情况可以定。
第二步:下载百度地图库
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,下载地址http://developer.baidu.com/map/sdkandev-download.htm,下载Android
SDKv2.1.3 lib库就行了
第三步:应用到自己的项目中去
1.布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.ncsyeyy.YeyyBaiDuMap.MyLocationMapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:background="@drawable/edit_bg_all" > <EditText android:id="@+id/txtAddr" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_centerVertical="true" android:layout_marginRight="2dp" android:layout_toLeftOf="@+id/btOk" android:background="@drawable/edit_bg_all" android:completionThreshold="2" android:drawableLeft="@drawable/qz_icon_seabar_search" android:hint="请输入搜索关键字" /> <TextView android:id="@+id/btOk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="2dp" android:layout_toLeftOf="@+id/s2" android:text="搜索" android:textSize="18sp" /> <ImageView android:id="@+id/s2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="2dp" android:layout_toLeftOf="@+id/btget" android:src="@drawable/slide_center" /> <TextView android:id="@+id/btget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="定位" android:textSize="18sp" /> </RelativeLayout> </FrameLayout> </RelativeLayout>custom_text_view.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/popleft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/popup_side" android:gravity="center" android:textStyle="bold" android:textColor="#3814ed" android:text="更新位置" android:textSize="12sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/popinfo" > <TextView android:id="@+id/textcache" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/popup_middle" android:gravity="center" android:textStyle="bold" android:textColor="@android:color/black" android:textSize="12sp" /> <TextView android:id="@+id/popdown" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/popup_down" android:textColor="@android:color/black" android:textSize="12sp" /> </LinearLayout> <TextView android:id="@+id/popright" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/popup_side" android:textColor="#3814ed" android:gravity="center" android:textStyle="bold" android:text="更新marker" android:textSize="12sp" /> </LinearLayout>
2.代码的实现部分
具体的代码部分可以下载源码看
3.AndroidManifest.xml权限的添加
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ncsyeyy.YeyyBaiDuMap" android:versionCode="1" android:versionName="1.0"> <!--<uses-sdk android:minSdkVersion="19"/>--> <!-- 添加屏幕支持 --> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 使用网络功能所需权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <!-- 使用定位功能所需权限 --> <!-- SDK离线地图和cache功能需要读写外部存储器 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission> <uses-permission android:name="android.permission.READ_LOGS" > </uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <pre style="background-color: rgb(255, 255, 255); font-family: 'Source Code Pro'; font-size: 18pt;"><span style="color:#ff0000;">// Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.ncsyeyy.YeyyBaiDuMap.MyApplication // at com.ncsyeyy.YeyyBaiDuMap.MainActivity.onCreate(MainActivity.java:67)<span style="font-family: 'Courier New';">产生错误的原因</span></span><application android:name=".MyApplication"//注意:一定要写上不然会报错 android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity android:name=".MainActivity" android:allowBackup="true" android:theme="@style/AppTheme"
android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <!-- 百度地图服务START --> <service android:name="com.baidu.location.f"
android:enabled="true" android:process=":remote" > </service> <!-- 百度地图服务end --> </application></manifest>
运行结果:
源码地址:
http://download.csdn.net/detail/csdnyuandaimaxuexi/9048135
相关文章推荐
- 使用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的关闭事件