首页 > 代码库 > 百度地图实现普通地图、定位、周边搜索功能

百度地图实现普通地图、定位、周边搜索功能

注意:此Demo是用Android Studio实现的

//--------------一下是普通地图的实现-----------------------------------

1:打开百度地图APi进去,如果没有注册过的需要注册,注册过的登录进入

2:点击开发——Android地图SDk——点击获取密钥——点击创建应用——然后你就创建一个新的项目
3:打开你项目下的res——values——string.xml把项目名:比如BaiDuMap复制到应用名称中去
4:应用类型选择:Android SDK
5:发布版SHA1 的获取:打开你电脑的c盘——用户——你的用户名——.android 下面有一个debug.keystore  
   点击键盘Windows+R 进入黑窗口 输入  keytool -list -v -keystore 把keytool -list -v -keystore拖进去(注意:-keystore后面要有一个空格)点击键盘的回车键

6:输入密钥库口令:android (注意都是英文小写)回车键
7:把下面显示的证书指纹中的:SHA1复制到 发布版SHA1
8:打开你项目的清单文件 把包名复制到 包名
9:点击下面的提交
10:就生成了一个Key
11:点击开发指南下的相关下载,下载相关的demo
12:把demo中libs下的除了android-support-v4  全部复制到你的工程的libs下
 点击Android Studio工具栏中的有多个小方块的那个图标
 点击APP再点击Dependencies ——点击加号 ——选择File dependency
把libs下的jar包都添加进去



13:进入百度地图Api的Android定位Sdk 中开发指南中的配置环境 找到
sourceSets {
        main {
            jniLibs.srcDirs = [‘libs‘]
        }
}
复制到 工程下的build.gradle中
如:buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = [‘libs‘]
        }
    }
}

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    testCompile ‘junit:junit:4.12‘
    compile ‘com.android.support:appcompat-v7:23.4.0‘
}

点击右上角的Sync Now 同步一下

14:进入开发指南中的 Hello BaiduMap中 (注意:key值就是刚才我们申请的那个)

 (1)在application中添加开发密钥
<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="http://www.mamicode.com/开发者 key" />  
</application>
2)添加所需权限
<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.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
第三步,在布局xml文件中添加地图控件;
<com.baidu.mapapi.map.MapView  
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />

第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:
public class MainActivity extends Activity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
    }  
}
注意:在SDK各功能组件使用之前都需要调用
SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中


第四步我是这么做的:新建一个application包,在这个包下新创建一个BaseApplication类并继承Application,实现onCreate的方法
在onCreate中复制 SDKInitializer.initialize(getApplicationContext());进去
如下:

public class BaseApplication extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(getApplicationContext());
    }
}


然后在清单文件中配置:<application下:
<application
        android:name=".application.BaseApplication"


第五步,创建地图Activity,管理地图生命周期;
public class MainActivity extends Activity {  
    MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }
完成以上步骤后,运行程序,即可在您的应用中显示

 

//-------------------以上是普通地图的失现---------------------------------------------------------

 

百度地图实现普通地图、定位、周边搜索功能