无法在用户的当前位置Google Map V2上添加标记

时间:2016-01-25 11:34:17

标签: android google-maps google-maps-api-3 genymotion-gps

我正在尝试在 Genymotion 模拟器上获取用户的当前位置。我已经设置了自定义 GPS ,并且在 Genymotion 上进行了解决。每当我尝试打开Goog​​le地图时,当前位置都无法显示在其中。 这是我的代码段。

  googleMap = ((MapFragment) getFragmentManager().findFragmentById(
    R.id.map1)).getMap();
  googleMap.setMyLocationEnabled(true);
  LocationManager locManager = (LocationManager) context
    .getSystemService(context.LOCATION_SERVICE);
  Criteria criteria = new Criteria();
  String locProvider = locManager.getBestProvider(criteria, false);
  Location location = locManager.getLastKnownLocation(locProvider);
  Location myLocation = googleMap.getMyLocation();
  if (myLocation != null) {
   double latitude = location.getLatitude();
   double longitude = location.getLongitude();
   LatLng latLng = new LatLng(latitude, longitude);
   googleMap.addMarker(new MarkerOptions()
     .position(latLng)
     .title("rajkot")
     .icon(BitmapDescriptorFactory
       .fromResource(R.drawable.ic_launcher)));
   googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
   googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));

  } else {
   Toast.makeText(context, "unable to find location", 20).show();
  }

这是我的截图。 Google Map

请帮助我,我找不到用户的当前位置

我也在真实设备上查看它无法正常工作

2 个答案:

答案 0 :(得分:0)

试试这个。

private GoogleMap mMap; // Might be null if Google Play services APK is not available.



mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {


            @Override
            public void onMyLocationChange(Location location) {

                double latitude = location.getLatitude();
                double longitude = location.getLongitude();

                LatLng latestlatLng = new LatLng(latitude, longitude);

                Marker myself = mMap.addMarker(new MarkerOptions().position(latestlatLng).title("It's Me!"));
              //  myself.setDraggable(true);
                  mMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude())));
            }
        });

答案 1 :(得分:0)

也许您可以使用融合的LocationProviderClient对象的getLastLocation()方法来更改getMyLocaton()方法。