您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Google地图中显示我的当前位置

在Google地图中显示我的当前位置

将此代码用于当前位置:

googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    // TODO: Consider calling
    //    ActivityCompat#requestPermissions
    // here to request the missing permissions, and then overriding
    //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
    //                                          int[] grantResults)
    // to handle the case where the user grants the permission. See the documentation
    // for ActivityCompat#requestPermissions for more details.
    return;
}
googleMap.setMyLocationEnabled(true);
googleMap.getUiSettings().setZoomControlsEnabled(false);
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
googleMap.getUiSettings().setCompassEnabled(true);
googleMap.getUiSettings().setRotateGesturesEnabled(true);
googleMap.getUiSettings().setZoomGesturesEnabled(true);

if (locationManager == null) {
    locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
}
if (locationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER)) {
    isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    isNetworkProviderEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    if (isGPSEnabled) {
        location = getLastLocationByProvider(locationManager, LocationManager.GPS_PROVIDER, getApplicationContext());
    } else if (isNetworkProviderEnabled) {
        location = getLastLocationByProvider(locationManager, LocationManager.NETWORK_PROVIDER, getApplicationContext());
    }
    if (location != null) {
        latitude = location.getLatitude();
        longitude = location.getLongitude();
    } else {
        if (isNetworkProviderEnabled) {
            locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 100000, 1, this);
            provider_info = LocationManager.NETWORK_PROVIDER;
        } else if (isGPSEnabled) {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100000, 1, this);
            provider_info = LocationManager.GPS_PROVIDER;
        } else {

            alertDialog = Util.showOkDialog(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (Env.currentActivity != null) {
                        if (Env.currentActivity instanceof LocationActivity) {
                            try {
                                gotoSettings();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }

                    }
                    if (alertDialog != null) {
                        alertDialog.dismiss();
                        alertDialog = null;
                    }

                }
            }, this.getResources().getString(R.string.location_service_validation));

        }

        location = locationManager.getLastKNownLocation(provider_info);
        if (location != null) {
            latitude = location.getLatitude();
            longitude = location.getLongitude();
        }
    }

    MarkerOptions marker = new MarkerOptions().position(
            new LatLng(latitude, longitude))
            .title(getFullAddressLine(this));
    marker.icon(BitmapDescriptorFactory
            .defaultMarker(BitmapDescriptorFactory.HUE_GREEN));

    googleMap.addMarker(marker);
    CameraPosition cameraPosition = new CameraPosition.Builder()
            .target(new LatLng(latitude,
                    longitude)).zoom(15).build();
    googleMap.animateCamera(CameraUpdateFactory
            .newCameraPosition(cameraPosition));
}
Go 2022/1/1 18:16:21 有505人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶