Hej, sprawa wygląda tak w MainActivity mam mape(api od googlemaps), mam też klase NavigationService która obsługuje mi gps, zwraca aktualna pozycje, status gps itp. Zastanawiam sie czy w metodzie onLocationChanged w LocationListenerze mogę narysować coś na mapie (polygon) z MainActivity czy muszę w MainActivity brać tylko aktualną pozycje co jakis interwał i tam robic coś z mapa?
0
0
ktos coś?
0
pewnie ze mozesz. tylko musisz miec:
a) referencje mainActivity w drugiej klasie
b) przekazany callback
c) RxJava + PublishSubject (chyba najlepsza opcja)
0
wklej kod cos poradzimy
0
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
//deklaracja zmiennych
//troche kodu
navigationService = new NavigationService(getApplicationContext());
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
//kolejny nieistony kod
}
public class NavigationService {
// zmienne
public NavigationService(Context context){
this.context = context;
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps);
}
}
0
aha i jeszcze z istonych
LocationListener locationListenerGps = new LocationListener() {
public void onLocationChanged(Location location) {
myposition = new LatLng(location.getLatitude(),location.getLongitude());
Toast.makeText(context,"my pos "+ myposition, Toast.LENGTH_SHORT).show();
}
0
najprosciej to locationListenerGps utworz w mainactivity i przekaz przez konstruktor do NavigationService.
wtedy onLocationChanged() bedziesz mial dostep do zmiennych w mainactivity i tam sobie juz mozesz manipulowac mapa
0
dzieki! tak zrobie