zoukankan      html  css  js  c++  java
  • 百度地图之Hello World

    1.开发工具

        Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。

    2.工程配置

        第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_1_3.jar拷贝到libs根目录下,将libBaiduMapSDK_v2_1_3.so和libBaiduMapVOS_v2_1_3.so拷贝到libsarmeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;

        注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。

    andorid_dev1.jpg

        第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_3.jar,确定后返回。

        通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

    注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:

    1. 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;

    2. Project -> clean-> clean all .

    3.显示地图

        百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

        第一步:创建并配置工程(具体方法参见工程配置部分的介绍);

        第二步:在Manifest中添加使用权限及Android版本支持;

        常用使用权限如下(开发者可根据自身程序需求,添加所需权限):

    1. <!--使用网络功能所需权限  -->  
    2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">  
    3. </uses-permission>  
    4. <uses-permission android:name="android.permission.INTERNET">  
    5. </uses-permission>  
    6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE">  
    7. </uses-permission>  
    8. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE">  
    9. </uses-permission>  
    10. <!-- SDK离线地图和cache功能需要读写外部存储器 -->  
    11. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">  
    12. </uses-permission>  
    13. <!-- 获取设置信息和详情页直接拨打电话需要以下权限  -->  
    14. <uses-permission android:name="android.permission.READ_PHONE_STATE">  
    15. </uses-permission>  
    16. <uses-permission android:name="android.permission.CALL_PHONE">  
    17. </uses-permission>  
    18. <!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->  
    19. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">  
    20. </uses-permission>  
    21. <permission android:name="android.permission.BAIDU_LOCATION_SERVICE">  
    22. </permission>  
    23. <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE">  
    24. </uses-permission>  
    25. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">  
    26. </uses-permission>  
    27. <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">  
    28. </uses-permission>  
    29. <uses-permission android:name="android.permission.ACCESS_GPS"/>                    

        配置Activity:

    1. <activity android:name=".MapDemo"  
    2.           android:screenOrientation="sensor"  
    3.           android:configChanges="orientation|keyboardHidden">  
    4. </activity>  

        添加屏幕及版本支持:

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

        第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.             android:orientation="vertical"  
    4.             android:layout_width="fill_parent"  
    5.             android:layout_height="fill_parent">  
    6.             <TextView android:layout_width="fill_parent"  
    7.                     android:layout_height="wrap_content"  
    8.                     android:text="hello world" />  
    9.             <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"  
    10.                     android:layout_width="fill_parent"  
    11.                     android:layout_height="fill_parent"  
    12.                     android:clickable="true" />  
    13. </LinearLayout>  

        第四步:创建地图Activity,并import相关类:

    1. import android.app.Activity;  
    2. import android.content.res.Configuration;  
    3. import android.os.Bundle;  
    4. import android.view.Menu;  
    5. import android.widget.FrameLayout;  
    6. import android.widget.Toast;  
    7. import com.baidu.mapapi.BMapManager;  
    8. import com.baidu.mapapi.map.MKMapViewListener;  
    9. import com.baidu.mapapi.map.MapController;  
    10. import com.baidu.mapapi.map.MapPoi;  
    11. import com.baidu.mapapi.map.MapView;  
    12. import com.baidu.platform.comapi.basestruct.GeoPoint;  
    13.    
    14. public class MyMapActivity extends Activity{  
    15.         @Override  
    16.         public void onCreate(Bundle savedInstanceState){  
    17.         }  
    18. }   

        第五步:初始化地图Activity、使用Key:

        在MyMapActivity中定义成员变量:

    1. BMapManager mBMapMan = null;  
    2. MapView mMapView = null;  

        在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”

    1. super.onCreate(savedInstanceState);  
    2. mBMapMan=new BMapManager(getApplication());  
    3. mBMapMan.init("我的Key"null);    
    4. //注意:请在试用setContentView前初始化BMapManager对象,否则会报错  
    5. setContentView(R.layout.activity_main);  
    6. mMapView=(MapView)findViewById(R.id.bmapsView);  
    7. mMapView.setBuiltInZoomControls(true);  
    8. //设置启用内置的缩放控件  
    9. MapController mMapController=mMapView.getController();  
    10. // 得到mMapView的控制权,可以用它控制和驱动平移和缩放  
    11. GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));  
    12. //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)  
    13. mMapController.setCenter(point);//设置地图中心点  
    14. mMapController.setZoom(12);//设置地图zoom级别  

        重写以下方法,管理API

    1. @Override  
    2. protected void onDestroy(){  
    3.         mMapView.destroy();  
    4.         if(mBMapMan!=null){  
    5.                 mBMapMan.destroy();  
    6.                 mBMapMan=null;  
    7.         }  
    8.         super.onDestroy();  
    9. }  
    10. @Override  
    11. protected void onPause(){  
    12.         mMapView.onPause();  
    13.         if(mBMapMan!=null){  
    14.                mBMapMan.stop();  
    15.         }  
    16.         super.onPause();  
    17. }  
    18. @Override  
    19. protected void onResume(){  
    20.         mMapView.onResume();  
    21.         if(mBMapMan!=null){  
    22.                 mBMapMan.start();  
    23.         }  
    24.        super.onResume();  
    25. }  

        完成以上步骤后,运行程序,即可在您的应用中显示如下地图:

    android_dev2.jpg

  • 相关阅读:
    [转]document对象execCommand的命令参数介绍
    Windows蓝屏说明
    PHP手册下载
    编写简单的代码生成工具
    EXCEL中标记两列中都存在的数据,过滤B列中存在A列中不存在的数据[原创]
    SC Create 添加服务不成功(总弹帮助信息)的原因[转]
    Excel中删除两列中重复的数据[原创]
    禁止更改桌面背景及活动桌面的批处理_最终版[原创]
    EXCEL中自动检测当前单元格或上一单元格在列A中是否存在相同数据[原创]
    EXCEL中避免同一列及相邻列中出现重复数据[原创]
  • 原文地址:https://www.cnblogs.com/goldeneast/p/3309256.html
Copyright © 2011-2022 走看看