Rysowanie na mapie w innej klasie

Odpowiedz Nowy wątek
2018-03-25 17:31
C`a
0

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?

Pozostało 580 znaków

2018-03-26 17:28
C`a
0

ktos coś?

Pozostało 580 znaków

2018-03-26 20:28
EloMoto
0

pewnie ze mozesz. tylko musisz miec:
a) referencje mainActivity w drugiej klasie
b) przekazany callback
c) RxJava + PublishSubject (chyba najlepsza opcja)

Pozostało 580 znaków

2018-03-26 20:29
EloMoto
0

wklej kod cos poradzimy

Pozostało 580 znaków

2018-03-27 17:47
C`a
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);
}

}

Pozostało 580 znaków

2018-03-27 17:48
C`a
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();
        }

Pozostało 580 znaków

2018-03-27 20:52
EloMoto
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

Pozostało 580 znaków

2018-03-27 22:28
C`a
0

dzieki! tak zrobie

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0