导入包

implementation 'com.google.android.gms:play-services-maps:17.0.0'implementation 'com.google.android.gms:play-services-basement:17.1.1'implementation 'com.google.android.gms:play-services-base:17.1.0'implementation 'com.google.android.gms:play-services-gcm:17.0.0'implementation 'com.google.android.gms:play-services-location:17.0.0'implementation 'com.google.android.libraries.places:places:2.1.0'

AndroidManifest.xml 的application添加

 

密钥在这里申请

布局文件中使用

 

Java中使用

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()                .findFragmentById(R.id.map);if (mapFragment != null) {    mapFragment.getMapAsync(this);}

当前实现OnMapReadyCallback,并需要实现onMapReady方法

@Overridepublic void onMapReady(GoogleMap googleMap) {    this.googleMap = googleMap;}

画标注、画轨迹

public void setTrackView(List details) {    PolylineOptions options = new PolylineOptions();    options.color(getResources().getColor(R.color.colorAccent));    options.width(getResources().getDimension(R.dimen.track_link_line_width));    LatLngBounds.Builder boundsBuilder = LatLngBounds.builder();    for (SportSceneRunningDetailModel.Detail detail : details) {        com.google.android.gms.maps.model.LatLng latLng = new com.google.android.gms.maps.model.LatLng(detail.getLatitude(), detail.getLongitude());        options.add(latLng);        boundsBuilder.include(latLng);    }    googleMap.addPolyline(options);    // 绘制起点    BitmapDescriptor bitmap = com.google.android.gms.maps.model.BitmapDescriptorFactory.fromResource(R.mipmap.ic_track_start);    com.google.android.gms.maps.model.LatLng latLng = new com.google.android.gms.maps.model.LatLng(details.get(0).getLatitude(), details.get(0).getLongitude());    googleMap.addMarker(new com.google.android.gms.maps.model.MarkerOptions().position(latLng).icon(bitmap).anchor(0.5f, 0.5f));    // 绘制终点    bitmap = BitmapDescriptorFactory.fromResource(R.mipmap.ic_track_end);    latLng = new LatLng(details.get(details.size() - 1).getLatitude(), details.get(details.size() - 1).getLongitude());    googleMap.addMarker(new MarkerOptions().position(latLng).icon(bitmap).anchor(0.5f, 0.5f));    // 会根据所以标注和轨迹自动绽放地图大小,达到所有点和线都在屏幕中显示    CameraUpdate mCameraUpdate = CameraUpdateFactory.newLatLngBounds(boundsBuilder.build(), 100);    googleMap.moveCamera(mCameraUpdate);}

SportSceneRunningDetailModel.Detail是项目中的实体,根据自己项目换成经纬度列表就行。

利用原生方式定位

LocationManager mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);// 执行下面代码前要判断一下ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 1, this);

当前实现LocationListener接口,下面需要实现的方法,定位成功后会调用onLocationChanged方法。

@Overridepublic void onLocationChanged(Location location) {    LogUtil.d("定位成功:" + location.getLatitude() + "," + location.getLongitude());}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}

更多相关文章

  1. android 利用startActivityForResult()方法得到另一个Activity的
  2. android studio中rendering problems解决方法
  3. Android之Tab分页标签的实现方法一-----TabActivity和TabHost的
  4. View的invalidate()方法的源码分析
  5. android动态布局方法总结
  6. android 監聽系統屬性變化的方法
  7. Android学习札记36:一个关于onSaveInstanceState ()方法的例子
  8. Android调用系统的发邮件方法
  9. Android轮播图Banner使用方法

随机推荐

  1. Android(安卓)RecyclerView单点、批量数
  2. Qt for Android(安卓)- JNI
  3. Android(安卓)activity启动关闭时滑动出
  4. Android(安卓)NFC读MifareClassic卡获取
  5. [Android(安卓)基础] -- Android(安卓)8.
  6. Android(安卓)Mms专题之:接收信息流程
  7. 详解Android冷启动实现APP秒开的方法
  8. mac android studio 执行terminal命令出
  9. Android(安卓)开发环境搭建 与在编译中遇
  10. Intent filter 关于Action、Category属性