Android学习笔记之初步学百度地图

移动开发 Android
百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多操作系统下的地图应用开发。

用户在使用API之前需要获取百度地图移动版API Key,并且该KEY与您引用API的程序名称有关,具体流程请参照:申请API KEY

百度地图API支持Android 1.5及以上系统。

<1>API添加到Andoid工程中

必须显得下载API开发包:点击下载

解压之后包括两个文件baidumapapi.jar和libBMapApiEngine.so。在工程根目录下创建ibs\armeabi目录,并拷贝到其目录下。

在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。

<2>在Manifest中添加使用权限

很多人会忘记的,一定要注意。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_WIFI_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> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

<3> 在Manifest中添加Android版本支持

<supports-screens android:largeScreens="true" 
    android:normalScreens="true" android:smallScreens="true" 
    android:resizeable="true" android:anyDensity="true"/> 
<uses-sdk android:minSdkVersion="3"></uses-sdk> 
  • 1.
  • 2.
  • 3.
  • 4.

<4> 让创建的地图Activity继承com.baidu.mapapi.MapActivity, 并import相关类

代码里的import相关类有些可能用不着,这的取决你的功能。

你可以不用导入这些,用那个再import("alt+/"快捷键)

import java.util.ArrayList; 
import java.util.List; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.graphics.Point; 
import android.graphics.drawable.Drawable; 
import android.location.Location; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Toast; 
import com.baidu.mapapi.BMapManager; 
import com.baidu.mapapi.GeoPoint; 
import com.baidu.mapapi.ItemizedOverlay; 
import com.baidu.mapapi.LocationListener; 
import com.baidu.mapapi.MKAddrInfo; 
import com.baidu.mapapi.MKDrivingRouteResult; 
import com.baidu.mapapi.MKGeneralListener; 
import com.baidu.mapapi.MKLocationManager; 
import com.baidu.mapapi.MKPlanNode; 
import com.baidu.mapapi.MKPoiResult; 
import com.baidu.mapapi.MKSearch; 
import com.baidu.mapapi.MKSearchListener; 
import com.baidu.mapapi.MKTransitRouteResult; 
import com.baidu.mapapi.MKWalkingRouteResult; 
import com.baidu.mapapi.MapActivity; 
import com.baidu.mapapi.MapController; 
import com.baidu.mapapi.MapView; 
import com.baidu.mapapi.MyLocationOverlay; 
import com.baidu.mapapi.Overlay; 
import com.baidu.mapapi.OverlayItem; 
import com.baidu.mapapi.PoiOverlay; 
import com.baidu.mapapi.RouteOverlay; 
import com.baidu.mapapi.TransitOverlay; 
 
public class MyMapActivity extends MapActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
    } 
    @Override 
    protected boolean isRouteDisplayed() { 
        return false
    } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

<5> 在布局xml中添加地图控件

<?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"
    <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="@string/hello" /> 
    <com.baidu.mapapi.MapView android:id="@+id/bmapsView" 
        android:layout_width="fill_parent" android:layout_height="fill_parent" 
        android:clickable="true" /> 
</LinearLayout> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

<6> 始化地图Activity, 在地图Activity中定义变量: BMapManager  mapManager  = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:

mapManager = new BMapManager(getApplication()); 
        mapManager.init(key, null); 
        super.initMapActivity(mapManager); 
          
        MapView mapView = (MapView) findViewById(R.id.mapsView); 
        mapView.setBuiltInZoomControls(true);  //设置启用内置的缩放控件 
          
        MapController mapController = mapView.getController();  // 得到mMapView的控制权,可以用它控制和驱动平移和缩放 
        GeoPoint point = new GeoPoint((int) (39.915 * 1E6), 
                (int) (116.404 * 1E6));  //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) 
        mapController.setCenter(point);  //设置地图中心点 
        mapController.setZoom(12);    //设置地图zoom级别 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

Override以下方法,管理API:

@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(); 
    } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

源代码下载:点击下载

原文链接:http://blog.csdn.net/sjf0115/article/details/7319468

责任编辑:闫佳明 来源: oschina
相关推荐

2013-04-08 14:59:54

Android学习笔记百度地图Overlay

2013-11-04 17:38:09

Clouda百度

2011-09-29 11:00:54

百度地图API

2011-05-25 14:36:17

2011-09-16 10:37:42

地图API

2011-10-21 09:28:25

百度地图API

2011-10-21 10:16:25

百度地图API

2021-06-15 14:33:00

高德百度腾讯

2011-09-26 10:05:19

百度地图API

2011-10-09 11:07:40

百度地图API

2011-10-24 14:01:29

API

2012-02-03 14:01:15

地图

2011-09-16 14:39:02

百度地图API

2013-08-22 17:08:50

2020-12-11 22:02:00

百度地图Apollo

2014-07-25 17:12:39

数据库WOT2014MongoDB

2020-11-26 15:09:49

数据安全百度地图机器学习

2015-05-27 09:51:45

百度深度学习人工智能

2018-03-09 22:56:52

PaddlePaddl

2012-02-01 09:33:36

百度地图API
点赞
收藏

51CTO技术栈公众号