目录
一、百度地图介绍
1. MapView类:
2. BaiduMap类:
3. GeoCoder类:
4.GeoCodeOption类:
5.GeoCodeResult类:
6. LocationClient类:
7.LocationClientOption 类:
8. RoutePlanSearch类:
9.LatLng 类:
10. PoiSearch 类:
11.PoiResult 类:
12.PoiInfo 类:
13.PoiOverlay 类:
14.MarkerOptions类:
15.MapStatusUpdate类:
二、使用例子
例1:获取当前位置:
MainActivity :
activity_main:
AndroidManifest:
运行结果
一、百度地图介绍
百度地图SDK是一套供开发者使用的软件开发工具包(SDK),用于在Android应用程序中集成和使用百度地图功能。通过使用百度地图SDK,开发者可以实现在自己的应用中显示地图、获取定位信息、进行搜索、导航等功能。
百度地图SDK提供了许多常用的类和方法,用于实现各种地图相关功能。以下是一些常用的类及其方法:
1. MapView类:
MapView 类是百度地图SDK提供的一个控件类,用于在应用程序的界面上显示地图。它是一个自定义的 View,可以与 BaiduMap 类关联,实现地图的显示和交互功能。
常用方法:
- getMap():获取百度地图对象(BaiduMap)的实例。
- onResume():在Activity的生命周期方法中调用,用于恢复地图控件的绘制和定位功能。
- onPause():在Activity的生命周期方法中调用,用于暂停地图控件的绘制和定位功能。
- onDestroy():在Activity的生命周期方法中调用,用于销毁地图控件。
2. BaiduMap类:
BaiduMap 类是百度地图SDK中的核心类,用于管理和操作地图。它提供了一系列方法和接口,用于显示地图、控制地图状态、添加覆盖物、定位等功能。
常用方法:
- setMapType():设置地图显示类型,如普通地图、卫星地图等。
- setMapStatus():设置地图的状态,包括中心点坐标、缩放级别、倾斜角度和旋转角度等。
- addOverlay():添加覆盖物(Overlay),如标记点(Marker)、折线(Polyline)和多边形(Polygon)等。
- clear():清除地图上的所有覆盖物。
- setOnMapClickListener():设置地图点击事件监听器。
- setOnMarkerClickListener():设置标记点点击事件监听器。
3. GeoCoder类:
GeoCoder 类是百度地图SDK提供的一个地理编码和反地理编码工具类,用于将地址信息与地理坐标之间进行转换。通过 GeoCoder 类,开发者可以实现将地址解析为经纬度坐标(地理编码),或者将经纬度坐标解析为地址信息(反地理编码)。
常用方法:
- newInstance():创建 GeoCoder 实例。
- setOnGetGeoCodeResultListener():设置地理编码查询结果监听器。
- setOnGetReverseGeoCodeResultListener():设置反地理编码查询结果监听器。
- geocode():发起地理编码查询,将地址信息转换为经纬度坐标。
- reverseGeoCode():发起反地理编码查询,将经纬度坐标转换为地址信息。
4.GeoCodeOption类:
GeoCodeOption类是百度地图API中的一个选项类,用于设置地理编码的参数和选项。地理编码是将地理位置转换为对应的经纬度坐标的过程。
常用方法
-
address(String address)
:设置待编码的地址信息。 -
city(String city)
:设置地址所在的城市名。 -
retCoordType(String coordType)
:设置返回结果的坐标类型。可选参数包括:"bd09ll"(百度坐标,默认值)、"gcj02"(国测局坐标)和"wgs84"(WGS-84坐标)。 -
getAddress()
:获取待编码的地址信息。 -
getCity()
:获取地址所在的城市名。 -
getRetCoordType()
:获取返回结果的坐标类型。
5.GeoCodeResult类:
GeoCodeResult类是百度地图API中用于表示地理编码结果的类。通过该类,可以获取地理编码的查询结果信息,包括位置坐标、地址描述等。
-
getLocation()
:获取地理编码的位置坐标(LatLng对象)。 -
getAddress()
:获取地理编码结果的地址描述。 -
getBusinessCircle()
:获取地理编码结果所属的商圈名称。 -
getSematicDescription()
:获取地理编码结果的语义化描述信息,即更详细的文字描述。
6. LocationClient类:
LocationClient 类是百度定位SDK提供的核心类,用于实现设备的定位功能。通过 LocationClient 类,开发者可以获取设备的当前位置信息,包括经纬度坐标、速度、方向等。
常用方法:
- registerLocationListener():注册定位监听器。
- start():开始定位。
- stop():停止定位。
7.LocationClientOption 类:
LocationClientOption
类是百度地图定位 SDK 中的一个配置类,用于设置定位相关的参数和选项。通过创建 LocationClientOption
对象并对其进行适当的配置,可以实现更精确和个性化的定位功能。
常用方法
-
setLocationMode(LocationClientOption.LocationMode mode)
:设置定位模式,包括三种模式:-
Hight_Accuracy
:高精度模式,同时使用 GPS 和网络定位。 -
Battery_Saving
:低功耗模式,只使用网络定位。 -
Device_Sensors
:仅使用 GPS 定位。
-
-
setCoorType(String coorType)
:设置返回的定位结果坐标系类型,包括:-
bd09ll
:百度经纬度坐标(默认)。 -
gcj02
:国测局加密经纬度坐标。 -
bd09
:百度墨卡托坐标。
-
-
setScanSpan(int scanSpan)
:设置定位间隔时间,单位为毫秒。设定的值大于等于 1000ms 才有效。 -
setIsNeedAddress(boolean isNeedAddress)
:设置是否需要获取地址信息,默认为 false。 -
setOpenGps(boolean isOpenGps)
:设置是否打开 GPS,默认为 false。 -
setIsNeedLocationDescribe(boolean isNeedLocationDesc)
:设置是否需要位置描述信息,默认为 false。 -
setIsNeedLocationPoiList(boolean isNeedLocationPoiList)
:设置是否需要周边 POI 信息,默认为 false。 -
setIsIgnoreCacheException(boolean isIgnoreCacheException)
:设置是否忽略 GPS 定位失败时的异常,默认为 false。 -
setEnableSimulateGps(boolean enableSimulateGps)
:设置是否允许模拟 GPS 位置,默认为 false。
8. RoutePlanSearch类:
RoutePlanSearch 类是百度地图SDK提供的路线规划搜索类,用于实现不同交通方式的路线规划功能。通过 RoutePlanSearch 类,开发者可以根据起点和终点的坐标,进行驾车、步行、公交等多种交通方式的路线规划,并获取详细的路线信息。
常用方法:
- setOnGetRoutePlanResultListener():设置路径规划结果监听器。
- drivingSearch():发起驾车路线规划。
- walkingSearch():发起步行路线规划。
- transitSearch():发起公交路线规划。
9.LatLng 类:
LatLng 类是百度地图SDK提供的一个表示经纬度坐标的类。它用于存储地理位置的经度和纬度信息,并提供了一些方法来获取和设置经纬度值。
常用方法:
-
latitude()
:获取纬度值。 -
longitude()
:获取经度值。 -
equals(LatLng other)
:判断当前 LatLng 对象是否与另一个 LatLng 对象相等。 -
toString()
:返回 LatLng 对象的字符串表示。
10. PoiSearch 类:
PoiSearch 类是百度地图SDK提供的一个兴趣点搜索类,用于实现地图上的兴趣点检索功能。通过 PoiSearch 类,开发者可以根据关键词、地理位置等条件进行兴趣点的搜索,并获取相关的搜索结果。
常用方法:
-
newInstance()
:创建 PoiSearch 实例。 -
searchInCity(PoiCitySearchOption option)
:在指定城市内搜索兴趣点。需要创建一个 PoiCitySearchOption 对象,并设置要搜索的城市名称、关键词等参数,然后调用该方法进行搜索。 -
searchNearby(PoiNearbySearchOption option)
:在指定位置附近搜索兴趣点。需要创建一个 PoiNearbySearchOption 对象,并设置中心点坐标、搜索半径、关键词等参数,然后调用该方法进行搜索。 -
searchInBound(PoiBoundSearchOption option)
:在指定矩形区域内搜索兴趣点。需要创建一个 PoiBoundSearchOption 对象,并设置矩形区域的左下角和右上角坐标、关键词等参数,然后调用该方法进行搜索。 -
setOnGetPoiSearchResultListener(OnGetPoiSearchResultListener listener)
:设置兴趣点搜索结果的监听器。需要实现 OnGetPoiSearchResultListener 接口,并将其注册给 PoiSearch 对象,以接收搜索结果的回调。 -
searchPoiDetail(PoiDetailSearchOption option)
:根据兴趣点的 UID 获取详细信息。需要创建一个 PoiDetailSearchOption 对象,并设置兴趣点的 UID,然后调用该方法进行详情查询。 -
searchPoiIndoor(PoiIndoorOption option)
:在室内地图中搜索兴趣点。需要创建一个 PoiIndoorOption 对象,并设置室内ID、关键词等参数,然后调用该方法进行搜索。 -
searchPoiPage(int pageNum)
:加载下一页的搜索结果。需要指定要加载的页码,通过设置之前的搜索选项对象的pageNum
属性来实现分页加载。 -
destroy()
:销毁 PoiSearch 对象,释放相关资源。
11.PoiResult 类:
PoiResult 类是百度地图SDK中的一个类,用于表示兴趣点搜索的结果集。它包含了符合搜索条件的一组兴趣点数据,并提供了相关的方法来获取和操作这些数据。
-
getAllPoi()
:获取搜索到的所有结果。 -
error
:表示搜索结果的错误码。
12.PoiInfo 类:
PoiInfo 类是百度地图SDK中的一个类,用于表示兴趣点的信息。它包含了兴趣点的名称、地址、经纬度坐标等详细信息,并提供了相关的方法来获取和操作这些数据。
-
name
:POI 名称。 -
address
:POI 地址。
13.PoiOverlay 类:
PoiOverlay 类是百度地图SDK中的一个类,用于在地图上绘制兴趣点标注覆盖物。它可以将 PoiResult 中的兴趣点数据在地图上展示,并提供了一些方法用于自定义标注样式和点击事件处理。
-
setData()
:设置搜索到的 POI 数据。 -
addToMap()
:将兴趣点标注添加到地图上。 -
zoomToSpan()
:缩放地图以适应所有兴趣点。
14.MarkerOptions类:
MarkerOptions类是百度地图API中的一个选项类,用于设置标记点(Marker)的参数和选项。标记点是地图上用于标识某个位置的图标,常用于显示兴趣点、位置标注等。
-
position(LatLng position)
:设置标记点的经纬度坐标。 -
icon(BitmapDescriptor icon)
:设置标记点的图标资源,可以是本地图片、远程图片或内置的图标样式。使用BitmapDescriptorFactory
类创建BitmapDescriptor
对象,并将其作为参数传入。 -
zIndex(int zIndex)
:设置标记点的堆叠顺序,值越大表示越靠前。 -
perspective(boolean perspective)
:设置标记点的透视效果,即倾斜角度。true表示启用透视效果,false表示不启用。 -
draggable(boolean draggable)
:设置标记点是否可拖拽。true表示可拖拽,false表示不可拖拽。 -
animateType(MarkerAnimateType animateType)
:设置标记点的动画效果类型。可以使用MarkerAnimateType
枚举类中的常量值,如MarkerAnimateType.none
、MarkerAnimateType.grow
、MarkerAnimateType.jump
、MarkerAnimateType.drop
。 -
getIcon()
:获取标记点的图标资源。 -
getPosition()
:获取标记点的经纬度坐标。 -
getZIndex()
:获取标记点的堆叠顺序。 -
isPerspective()
:判断标记点是否启用透视效果。 -
isDraggable()
:判断标记点是否可拖拽。 -
getAnimateType()
:获取标记点的动画效果类型。
15.MapStatusUpdate类:
MapStatusUpdate类是百度地图API中用于设置地图状态更新的类。通过该类,可以对地图进行平移、缩放、旋转等操作。
-
newLatLng(LatLng latLng)
:创建一个以指定经纬度为中心点的地图状态更新对象。 -
newLatLngBounds(LatLngBounds bounds)
:创建一个以指定经纬度边界为显示范围的地图状态更新对象。 -
newMapStatus(MapStatus mapStatus)
:创建一个以指定地图状态为基础的地图状态更新对象。 -
newLatLngZoom(LatLng latLng, float zoom)
:创建一个以指定经纬度为中心点、指定缩放级别的地图状态更新对象。 -
zoomTo(float zoom)
:创建一个将地图缩放到指定级别的地图状态更新对象。 -
zoomBy(float amount)
:创建一个按照指定比例增加(正值)或减小(负值)地图缩放级别的地图状态更新对象。 -
rotate(float rotate)
:创建一个以指定角度顺时针旋转地图的地图状态更新对象。 -
overlook(float overlook)
:创建一个以指定角度俯视地图的地图状态更新对象。 -
scrollBy(int offsetX, int offsetY)
:创建一个沿屏幕像素坐标偏移地图中心点的地图状态更新对象。
二、使用例子
例1:获取当前位置:
MainActivity :
package com.example.location;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.geocode.GeoCodeOption;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
public class MainActivity extends AppCompatActivity {
LocationClient mLocationClient;
MapView mMapView;
BaiduMap mBaiduMap;
private Button select;
private EditText editText;
boolean isFirstLocate = true;
boolean isFirstText = true;
TextView tv_Lat; // 经度
TextView tv_Lon; // 纬度
TextView tv_Add; // 地址
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化地图应用
SDKInitializer.setAgreePrivacy(this.getApplicationContext(),true);
LocationClient.setAgreePrivacy(true);
SDKInitializer.initialize(this.getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
tv_Lat = findViewById(R.id.tv_Lat);
tv_Lon = findViewById(R.id.tv_Lon);
tv_Add = findViewById(R.id.tv_Add);
select = findViewById(R.id.btn_search);
editText = findViewById(R.id.address);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
}else {
requestLocation();
}
select.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String address = editText.getText().toString();
if (address!=null){
searchGeoCode(address);
}else {
Toast.makeText(MainActivity.this, "请输入地点", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 1:
if (grantResults[0]!=PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "没有定位权限!", Toast.LENGTH_SHORT).show();
finish();
}else{
requestLocation();
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
private void requestLocation() {
// 定位前初始化
initLocation();
// 发起定位
mLocationClient.start();
}
private void initLocation() {
// LocationClient.setAgreePrivacy(true);
try {
mLocationClient = new LocationClient(getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener());
// 定位客户端操作
LocationClientOption option = new LocationClientOption();
// 设置扫描时间
option.setScanSpan(1000);
// 设置定位参数
option.setCoorType("bd09ll"); // 设置坐标类型为百度经纬度
option.setIsNeedAddress(true); // 设置需要获取地址信息
// 设置定位模式
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
// option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
// option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);
option.setIsNeedAddress(true); // 设置需要地址信息
// 保存定位参数
mLocationClient.setLocOption(option);
} catch (Exception e) {
e.printStackTrace();
}
}
// 内部类,百度位置监听器
private class MyLocationListener implements BDLocationListener{
@Override
public void onReceiveLocation(BDLocation bdLocation) {
if (isFirstText){
tv_Lat.setText(bdLocation.getLatitude()+"");
tv_Lon.setText(bdLocation.getLongitude()+"");
tv_Add.setText(bdLocation.getAddrStr());
isFirstText = false;
}
// GPS 定位或网格定位时
if (bdLocation.getLocType()==BDLocation.TypeGpsLocation||bdLocation.getLocType()==BDLocation.TypeNetWorkLocation){
navigateTo(bdLocation);
}
}
private void navigateTo(BDLocation bdLocation) {
if (isFirstLocate){
LatLng ll = new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());
MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
// 以动画更新方式,实现对手势引起的地图状态的更新
mBaiduMap.animateMapStatus(update);
// 创建自定义标记
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.arrow_icon);
MarkerOptions markerOptions = new MarkerOptions().position(ll).icon(bitmap).anchor(0.5f, 0.5f);
mBaiduMap.addOverlay(markerOptions);
isFirstLocate = false;
}
}
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
// 实现检索地点功能
private void searchGeoCode(String address) {
mBaiduMap.clear(); // 清除标记点
GeoCoder geoCoder = GeoCoder.newInstance();
GeoCodeOption geoCodeOption = new GeoCodeOption();
geoCodeOption.address(address);
geoCodeOption.city(address);
geoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {
if (geoCodeResult == null || geoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(MainActivity.this, "检索错误", Toast.LENGTH_SHORT).show();
} else {
LatLng latLng = geoCodeResult.getLocation();
MarkerOptions markerOptions = new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow_icon));
mBaiduMap.addOverlay(markerOptions);
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latLng, 15);
tv_Lat.setText(" "+latLng.latitude); // 经度
tv_Lon.setText(" "+latLng.longitude); // 纬度
tv_Add.setText(geoCodeResult.getAddress()); // 地址
mBaiduMap.setMapStatus(mMapStatusUpdate);
}
}
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
if (reverseGeoCodeResult == null || reverseGeoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(MainActivity.this, "获取地址信息失败", Toast.LENGTH_SHORT).show();
} else {
String address = reverseGeoCodeResult.getAddress();
Toast.makeText(MainActivity.this, address, Toast.LENGTH_SHORT).show();
}
}
});
geoCoder.geocode(geoCodeOption);
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
}
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#e0000000"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="12dp"
android:layout_marginTop="20dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="纬度:"
android:textColor="#ffffff"
android:textSize="15dp"
/>
<TextView
android:id="@+id/tv_Lat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#ffffff"
android:textSize="15sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="12dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="经度:"
android:textColor="#ffffff"
android:textSize="15dp"
/>
<TextView
android:id="@+id/tv_Lon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#ffffff"
android:textSize="15sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="12dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="地址:"
android:textColor="#ffffff"
android:textSize="15dp"
/>
<TextView
android:id="@+id/tv_Add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#ffffff"
android:textSize="15sp"
/>
</LinearLayout>
</LinearLayout>
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="8"
android:clickable="true"/>
<LinearLayout
android:id="@+id/layout_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp"
android:background="#FFFFFF"
android:layout_alignParentBottom="true">
<EditText
android:id="@+id/address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="输入地址"
android:layout_weight="1" />
<Button
android:id="@+id/btn_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="搜索" />
</LinearLayout>
</LinearLayout>
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.location">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.UI"
>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="你的Key" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
</service>
</application>
</manifest>
运行结果:
文章来源:https://www.toymoban.com/news/detail-617277.html
未完待续。。。文章来源地址https://www.toymoban.com/news/detail-617277.html
到了这里,关于安卓:百度地图开发(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!