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

Aktualizacja pozycji markera(GoogleMaps, Android)

42 Warsaw Coding Academy
0 głosów
110 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 148 wizyt
pytanie zadane 14 lutego 2019 w JavaScript przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 27 listopada 2016 w Urządzenia mobilne przez hangus Początkujący (290 p.)
0 głosów
4 odpowiedzi 657 wizyt
pytanie zadane 14 września 2016 w Urządzenia mobilne przez Piotrek Karasiński Obywatel (1,870 p.)

93,383 zapytań

142,383 odpowiedzi

322,539 komentarzy

62,745 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...