2015-07-14 2 views
2

В настоящее время я работаю с API Google Maps V2 в проекте Android, мне нужно иметь возможность нарисовать круг вокруг текущей позиции пользователей и отображать маркеры для интересующих вас зон вокруг текущая позиция пользователей.Google Maps Api V2 нарисовать круг вокруг текущей позиции

Im изо всех сил пытается получить малый маркер, который обозначает текущее положение пользователей, поэтому я могу нарисовать круг вокруг него.

Это мой код.

//Set up map and display users current position. 
    MapFragment mapFragment = (MapFragment) getFragmentManager() 
      .findFragmentById(R.id.nearbyMapSearch); 
    mapFragment.getMapAsync(this); 

    final GoogleMap map = (((MapFragment) getFragmentManager().findFragmentById(R.id.nearbyMapSearch)).getMap()); 
    map.setMyLocationEnabled(true); 

    //zoom to users location 
    GeoLocationHandler geoHandler = new GeoLocationHandler(getActivity().getApplicationContext()); 
    Log.i("Search Fragment", "" + geoHandler.getCurrentLatitude() + " , " + geoHandler.getCurrentLongitude()); 
    LatLng loc = new LatLng(geoHandler.getCurrentLatitude(), geoHandler.getCurrentLongitude()); 

    //Begin animating camera. 
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(
      new LatLng(loc.latitude, loc.longitude), 13)); 

    //Instantiate new Camera position 
    CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(new LatLng(loc.latitude, loc.longitude)) 
      .zoom(3) 
      .bearing(0) 
      .tilt(0) 
      .build(); 
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

Любая помощь с этим была бы высоко оценена.

ответ

5
Circle circle = map.addCircle(new CircleOptions() 
    .center(new LatLng(loc.latitude, loc.longitude)) 
    .radius(1000) 
    .strokeColor(Color.RED) 
    .fillColor(Color.BLUE)); 

Подробнее https://developers.google.com/android/reference/com/google/android/gms/maps/model/Circle

Вы должны подписаться на обновления о местоположении пользователя и сбросить центр окружности с

circle.setCenter(newLocation); 
+0

Очевидно ив смотрел на экран до тех пор, чтобы не понять, что это было так просто , Получение ошибки Null указателя при получении местоположения, однако, но я думаю, что это совершенно другая ошибка. –

+0

Да, это другая проблема с вашим кодом. Это связано с тем, что вы не можете использовать карту, прежде чем она будет готова. Все, что связано с инициализацией карты, вы должны перенести на ваш метод onMapReady. – Gabriel

+0

Итак, все, что нужно для фрагмента, нужно использовать в OnMapReady()? –

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