问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Android应用中使用百度地图api

发布网友 发布时间:2022-04-22 09:59

我来回答

3个回答

热心网友 时间:2023-10-31 10:28

通过一个简单的示例一步步介绍如何在Android应用中使用百度地图api。
1)下载百度地图移动版API(Android)开发包
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,这个开发包包含两个文件:mapapi.jar和libBMapApiEngine.so。下载地址:http://dev.baidu.com/wiki/static/imap/files/BaiMapApi_Lib_Android_1.0.zip
2)申请API Key
和使用Google map api一样,在使用百度地图API之前也需要获取相应的API Key。百度地图API Key与你的百度账户相关联,因此您必须先有百度帐户,才能获得API Key;并且,该Key与您引用API的程序名称有关。
百度API Key的申请要比Google的简单多了,其实只要你有百度帐号,应该不超过30秒就能完成API Key的申请。申请地址:http://dev.baidu.com/wiki/static/imap/key/
3)创建一个Android工程
这里需要强调一点:百度地图移动版api支持Android 1.5及以上系统,因此我们创建的工程应基于Android SDK 1.5及以上。
工程创建完成后,将mapapi.jar和libBMapApiEngine.so分别拷贝到工程的根目录及libs/armeabi目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定mapapi.jar,这样就可以在应用中使用百度地图API了。工程完整的目录结构如下图所示:

4)在布局文件中添加地图控件(res/layout/main.xml)

[xhtml] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com..mapapi.MapView android:id="@+id/map_View"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
/>
</LinearLayout>

5)创建Activity继承com..mapapi.MapActivity

[java] view plaincopy
package com.liufeng.map;

import android.graphics.drawable.Drawable;
import android.os.Bundle;

import com..mapapi.BMapManager;
import com..mapapi.GeoPoint;
import com..mapapi.MapActivity;
import com..mapapi.MapController;
import com..mapapi.MapView;

public class MainActivity extends MapActivity {
private BMapManager mapManager;
private MapView mapView;
private MapController mapController;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 初始化MapActivity
mapManager = new BMapManager(getApplication());
// init方法的第一个参数需填入申请的API Key
mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);
super.initMapActivity(mapManager);

mapView = (MapView) findViewById(R.id.map_View);
// 设置地图模式为交通地图
mapView.setTraffic(true);
// 设置启用内置的缩放控件
mapView.setBuiltInZoomControls(true);

// 用给定的经纬度构造一个GeoPoint(纬度,经度)
GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));

// 创建标记maker
Drawable marker = this.getResources().getDrawable(R.drawable.iconmarka);
// 为maker定义位置和边界
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());

// 取得地图控制器对象,用于控制MapView
mapController = mapView.getController();
// 设置地图的中心
mapController.setCenter(point);
// 设置地图默认的缩放级别
mapController.setZoom(12);
}

@Override
protected boolean isRouteDisplayed() {
return false;
}

@Override
protected void onDestroy() {
if (mapManager != null) {
mapManager.destroy();
mapManager = null;
}
super.onDestroy();
}

@Override
protected void onPause() {
if (mapManager != null) {
mapManager.stop();
}
super.onPause();
}

@Override
protected void onResume() {
if (mapManager != null) {
mapManager.start();
}
super.onResume();
}
}

6)在AndroidManifest.xml中配置

[xhtml] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.liufeng.map"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>

7)运行结果

说明:上面的应用只是简单的展示了百度地图(交通地图),并将一个指定的点(根据经纬度确定)展示在手机屏幕的中心。当然,实际项目中涉及的map应用不会这么简单,百度地图API为我们提供了丰富的功能接口,有待我们一起去研究学习。

http://blog.csdn.net/lyq8479/article/details/6384428

热心网友 时间:2023-10-31 10:28

先下载吧

热心网友 时间:2023-10-31 10:29

下载下来
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
问:和面面粉的发酵,常用哪些类似于食品添加剂一样的东西使面粉... 高数 求广义积分的值 ∫(0,∞)(arctan πx-arctan x)/xdx求解答!!给具体过程 ...1+x^2)^2/3] dx 这个表达式的反常积分怎么求啊 (0-&gt;+&amp;)积分限... 地方专项计划和地方农村专项计划有何区别? 地方专项与农村专项的区别 烤箱如何烤豆子 电烤箱烤豆而是多久 电烤箱烤豆需要多长时间。 存钱什么宝 微信余额宝叫什么 百度地图android sdk4.0中怎么检查网络 word中自己划的斜表头如何才能和表格成为一体 ? 免费语音导航 百度手机地图 4.0.0 用手机流量吗 被子上的尿迹怎么去除,被子上有尿迹怎么办 手机是什么 怎么用word画横线,就是在表头上边画一条横线 MIUI系统升级到4.0后再使用百度地图时不能导航了 手机百度地图4.0版下载所有的离线地图文件和导航文件,需要多少存储空间? 手机是什么 Word2016标题下方怎么显示横线? word标题下方加横线的教程 百度手机地图离线包安卓4.0的有吗 在WORD里面标题下面一条虚线怎么画上去 百度地图上显示4.0公里是多少亩地 word一级标题下画流程图 百度地图安卓版,4.0的语音导航功能在什么位置? 百度地图sdk 4.0为什么总是出错 中国四大名艾是哪四大 青团是艾膜吗? 做青团是用插门的那种端午艾吗 蓝盈莹做青团翻车,青团是什么?怎么制作? 如何在word中绘制表格,带斜线表头在第二行第一列 百度地图要付费吗? 如何在WORD表格中左下角设置斜线表头? 同样的手机同样的位置我的手机网络不稳定是什么原因? 被子上留下的尿渍,当时没洗,现在留下一个黄圈圈,还能洗掉吗?怎么洗? 摩托罗拉ME865怎么样 百度地图能否安装到外置SD卡? 如何去除棉被上的尿味 百度地图7.7.0为何打不开 被子去猫尿味最有效的方法 安卓4.0.4系统用什么地图比较精准好用,尤其是导航 内裤和被子上尿渍怎么清洗得干净啊? 如何去除被子上的尿味 怎么除去棉花被子上的尿味 隐名股东与显名股东的权利 公司股东如何分红 隐名股东的权利和义务都有哪些 股份有限公司单位性质 法律对股东分红权是如何规定的 股东的分红权法律上有什么规定