• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Aktualizacja pozycji markera(GoogleMaps, Android)

Object Storage Arubacloud
0 głosów
91 wizyt
pytanie zadane 8 lipca 2018 w Android, Swift, Symbian przez neos Początkujący (320 p.)

Witam, otrzymuję z bazy danych informacje o położeniu, obiektem którego położenie chciałbym aktualizować  co sekundę jest marker. W jaki sposób mogę to zrobić? Próbowałem Wywoływać AsyncTaska i podawać jako argument mapę lub marker lecz wyrzucało błędy. Kod który wklejam wykonałem do testów, zmienia co sekundę wartość wspolrzędnych.

 

    private class LocationAsyncTask extends AsyncTask<MarkerOptions, Void, Void>
    {

        boolean running = true;

        @Override
        protected Void doInBackground(MarkerOptions... markerOptions) {

            Log.i("Location: ", "doInBackground");
            while (this.running) {
                SystemClock.sleep(3000);

                if(count==0)
                {
                    Log.i("doInBackground: ", "AsyncTask: 0");
                    moto_longitude = 19.91834;
                }
                if(count==1)
                {
                    Log.i("doInBackground: ", "AsyncTask: 1");
                    moto_longitude = 19.91842;
                }

                markerOptions[0].position(new LatLng(moto_latitude, moto_longitude));

                count++;
                if(count==2)
                {
                    count =  0;
                }


            }

            return null;
        }

        public void stopStream() {
            this.running = false;
        }
    }

    private GoogleMap mMap;
    private static final int LOCATION_REQUEST = 500;
    double moto_latitude = 50.066421;
    double moto_longitude = 19.91842;
    LocationAsyncTask locationAsyncTask;
    MarkerOptions markerOptions;

    public int count = 0;

    @SuppressLint("ServiceCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_location);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);



    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);


        mMap.addMarker(new MarkerOptions().position(new LatLng(moto_latitude,moto_longitude)).title("E-Moto is here!"));
        // Add a marker in moto and move the camera
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(moto_latitude,moto_longitude), 18), 5000, null);

        if (ActivityCompat.checkSelfPermission(
                this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_REQUEST);
            return;
        }

        //create marker

        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(new LatLng(moto_latitude, moto_longitude));
            //add moto marker to map
            markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
        mMap.addMarker(markerOptions);
        //set my location enabled
        mMap.setMyLocationEnabled(true);

       // locationAsyncTask = new LocationAsyncTask();
       // locationAsyncTask.execute(markerOptions);

    }
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 117 wizyt
pytanie zadane 14 lutego 2019 w JavaScript przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 27 listopada 2016 w Urządzenia mobilne przez hangus Początkujący (290 p.)
0 głosów
4 odpowiedzi 547 wizyt
pytanie zadane 14 września 2016 w Urządzenia mobilne przez Piotrek Karasiński Obywatel (1,870 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...