google android map sdk地图和定位
2019-11-20 本文已影响0人
黄小楼vincent
1.首先在项目的APP gradle里面添加依赖
//google地图
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
2.去console.cloud.google.com注册和填写,主要是获取key。
过程很曲折。
创建应用后记得设置包名和SHA1
入口在“api和服务”--》凭据--》应用限制那里填写包名和SHA1。
最后在APi库那里打开android sdk的使用开关
3.AndroidManifest.xml 设置key
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="key" />
4.地图使用
主要贴几个核心代码
fragment的oncreateView 或者activity的oncreate里面调用
gMapView.onCreate(savedInstanceState);
private fun initMap() {
mapView.onResume() // needed to get the map to display immediately
try {
MapsInitializer.initialize(context)
} catch (e: Exception) {
e.printStackTrace()
}
mapView.getMapAsync(this)
}
接着运行,如果配置没有错,这个时候地图肯定已经出来。(记得梯子)
5。定位
mFusedLocationClient=LocationServices.getFusedLocationProviderClient(context)
//设置位置变化监听
LocationRequest request = new LocationRequest();
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// request.setInterval(1500);
request.setFastestInterval(interval_time);
if (locationCallback == null) {
initLocationCallback(listener);
}
mFusedLocationClient.requestLocationUpdates(request, locationCallback, Looper.myLooper());
//获取最后一次定位到的位置。
FusedLocationProviderClient mFusedLocationClient;
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(context);
mFusedLocationClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
}
});