2016-03-16 2 views
0

enter image description here

код:

- фокус камеры текущего местоположения

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
       Criteria criteria = new Criteria(); 

       if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(), 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; 
       } 
       Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false)); 
       if (location != null) 
       { 
        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
          new LatLng(location.getLatitude(), location.getLongitude()), 19)); 

        CameraPosition cameraPosition = new CameraPosition.Builder() 
          .target(new LatLng(location.getLatitude(), location.getLongitude()))  // Sets the center of the map to location user 
          .zoom(19)     // Sets the zoom 
          .bearing(90)    // Sets the orientation of the camera to east 
              // Sets the tilt of the camera to 30 degrees 
          .build();     // Creates a CameraPosition from the builder 
        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
+0

я думаю, и есть сеть и проверить GPS, прежде чем пытаться найти текущее местоположение .. после того, как использовать LocationManager.NetworkProvider вместо лучших критериев .. Becoz большую часть времени, критерии дают ua GPS. это не очень хороший вариант. Также у вас есть progressBar и поместите эту строку кода ** mProgressBar.setIndeterminate (true); ** и видимость для видимого перед вызовом получить местоположение в onMapReady и после того, как местоположение не является нулевым, сделать видимость GONE .. это должно помочь – DJphy

+0

, но как показать индикатор выполнения до тех пор, пока карта не будет закодирована? – Risk

+0

Прежде всего, не используйте свой собственный менеджер местоположений, если вы можете использовать FusedLocationApi. Этот API имеет обратные вызовы для того, когда он подключен, и из этого вы можете получить последние координаты Lat/Lng. Google mapView имеет обратные вызовы, которые уведомляют вас, когда карта готова и загружена. – TheSunny

ответ

3

В вашем XML, где и есть уры карты; объявить индикатор выполнения, например: intially его видимость уже не будет (в среднем он будет скрыт):

<ProgressBar 
    android:id="@+id/progressBar" 
    style="?android:attr/progressBarStyleSmall" 
    android:layout_width="60dp" 
    android:layout_height="60dp" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="45dp" 
    android:padding="5dp" 
    android:visibility="gone" /> 

Затем инициализировать ур прогрессбар в деятельности, где ур отображаются ур карты; объявить его в качестве переменной класса:

mProgressBar = (ProgressBar) findViewById(R.id.progressBar); 
mProgressBar.setIndeterminate(true); 

Тогда в OnCreate ур карте деятельности установить видимость ProgressBar к видимым:

mProgressBar.setVisibility(View.VISIBLE); 

Тогда в том месте, где ур вызова gmap.AnimateCamera (т.е. при масштабировании ur), где местоположение не равно null, если условие; U установить видимость пошли:

mProgressBar.setVisibility(View.GONE); 

Наслаждайтесь

+0

может помочь мне еще раз. Я хочу установить фон индикатора выполнения на прозрачный. Т.е. только круг должен быть видимым. – Risk

+0

мой Интернет, похоже, не работает. Я отвечу один раз, если его trobleshooted – DJphy

+0

Я сделал это .. thank u – Risk

Смежные вопросы