首页 > 解决方案 > 在 MapView 上看不到我当前位置的标记

问题描述

我想在 MapView 上添加我当前位置的标记,但未显示标记,代码如下:

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this.getContext());
........
@Override
public void onMapReady(GoogleMap googleMap) {
    MapsInitializer.initialize(getContext());
    googleMapObj = googleMap;
    googleMapObj.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    getMyLastLocation();
    moveCamera.....
    googleMapObj.setMyLocationEnabled(true);
}

private void getMyLastLocation(){
    mFusedLocationClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
        @Override
        public void onComplete(@NonNull Task<Location> task) {
            if(task.isSuccessful()){
                Location location = task.getResult();
                geopoint = new GeoPoint(location.getLatitude(),location.getLongitude());
                Log.d(TAG, geopoint.toString());
                googleMapObj.addMarker(new MarkerOptions()
                        .position(new LatLng(geopoint.getLongitude(),geopoint.getLongitude()))
                        .title("My Location"));

            }
        }
    });
}

我想知道为什么 MapView 上没有显示标记

标签: androidgoogle-maps

解决方案


在你的函数中试试这个:

   Marker mCurrLocationMarker;
   LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(latLng);
            markerOptions.title("Current Position");

           markerOptions.icon(BitmapDescriptorFactory.
              defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
            mCurrLocationMarker = mGoogleMap.addMarker(markerOptions);
            mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLngo, 11));

推荐阅读