主要步骤
第一步
进入开放平台注册开发账号
第二步
下载对应sdk
第三步
创建应用 获取SHA1(开发版和发布版)
第四步
集成(添加jar和so动态库文件)清单配置
第五步
调用API
1.创建应用
//获取开发版 :
双击SigningReport 得到开发版SHAl的
//获取发布版 :
Build ---> Generate SSingened AK -->
点击Create new....
key store path :工程所放的位置
Password,Confirm 都是密码统一的
Alias ,First and Last Name :起名
之后点击Next 即可
在Terminal 中进行获取
keytool -v -list -keystore yn.jks
输入密钥库口令:123456(Password,Confirm 和这里的一样)
获取到发布版的SHAl
提交之后得到Key值
就开始在代码中实现咯~~~~~~~
第一步:创建并配置工程(具体方法参见工程配置部分的介绍);
第二步:在AndroidManifest中添加开发密钥、所需权限等信息;
(1)在application中添加开发密钥
<
application
>
<
meta
-
data android
:
name
=
"com.baidu.lbsapi.API_KEY"
android
:
value
=
"开发者 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"
/>
//代码中
public class
MainActivity
extends
AppCompatActivity {
private
MapView
mMapView
;
@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
)
;
//获取地图
BaiduMap map =
mMapView
.getMap()
;
//普通地图
// map.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//卫星地图
// map.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
//开启交通地图
// map.setTrafficEnabled(true);
//开启热力地图
map.setBaiduHeatMapEnabled(
true
)
;
//定义Maker坐标
LatLng latlng =
new
LatLng(
39.963175
,
116.400244
)
;
//构建Maker图标
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.
fromResource
(R.drawable.
icon_gcoding
)
;
//第一种方式直接显示地图标注
OverlayOptions options =
new
MarkerOptions().position(latlng).icon(bitmapDescriptor).draggable(
true
)
;
map.addOverlay(options)
;
//--------------------------------------------------------------------------
final LatLng latlngA =new LatLng(39.963175, 116.300244);
BitmapDescriptor bitmapDescriptor1 = BitmapDescriptorFactory.
fromResource
(R.drawable.
icon_marka
);
MarkerOptions options1 = new MarkerOptions().position(latlngA).icon(bitmapDescriptor1).zIndex(9).draggable(true);
//第二种方式添加掉下动画效果
options1.animateType(MarkerOptions.MarkerAnimateType.
drop
);
//第二种方式添加生长动画效果
// options1.animateType(MarkerOptions.MarkerAnimateType.grow);
//转换
final Marker mMarkerA = (Marker) ( map.addOverlay(options1));
//--------------------------------------------------------------
//点击跳转
map.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
//判断对应Marker进行跳转
if(mMarkerA ==marker){
Intent intent =new Intent(MainActivity.this,OthActivity.class);
startActivity(intent);
}
return true;
}
});
//调用BaiduMap对象的setOnMarkerDragListener方法设置marker拖拽的监听
map.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {
@Override
//拖拽中
public void onMarkerDrag(Marker marker) {
}
@Override
//拖拽结束
public void onMarkerDragEnd(Marker marker) {
LatLng position = marker.getPosition();
//纬度
double latitude = position.latitude;
//经度
double longitude = position.longitude;
//打印出拖拽后的经度纬度
Log.
i
("xxxx",latitude+","+longitude);
}
@Override
//开始拖拽
public void onMarkerDragStart(Marker marker) {
}
});
}
@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();
}
}