Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Johnny13
1 / 1 / 2
Регистрация: 18.10.2011
Сообщений: 50
#1

Перемещение маркера на GoogleMap

16.02.2017, 17:36. Просмотров 290. Ответов 4
Метки нет (Все метки)

Подскажите пожалуйста в чём может быть дело.. я сделал locationListener, в OnLocationChanged я меняю координаты маркера и пишу их в лог... в логе координаты меняются, а в маркер не перемещается, остаётся прежним.. для проверки я добавил в titile маркера каунтер, он тоже изменятся

я делаю вот так
Java
1
2
3
4
5
6
7
8
9
10
public void onLocationChanged(Location location) {
                if (mMap != null) {
                    mMap.clear();
                }
                writeFileSD(location);
                coordinats = new LatLng(latitude,longitude);
                mMap.addMarker(new MarkerOptions().position(coordinats).title("I'm Here "+ counter));
                mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinats, 15));
                counter++;
            }

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2017, 17:36
Ответы с готовыми решениями:

Описание маркера в развернутом виде, GoogleMap API
Всем привет! Есть вопрос, связанный с картами googleMap. Как программно сделать...

Центровка по текущей локации в GoogleMap
А скажите, вот у меня есть код: @Override protected void onCreate(Bundle...

Маркер по центру MapView googleMap
В некоторых приложениях есть возможность на карте указать свое местоположение....

Добавление картинки на карту GoogleMap
Добрый день. Абсолютный новичок в программировании, посему хотел бы совета....

GoogleMap, getMap() выдает ошибку
вызываю из главного окна новое активити кнопкой вот так: Intent intent = new...

4
ExFau$t
535 / 490 / 104
Регистрация: 08.05.2012
Сообщений: 2,445
16.02.2017, 17:57 #2
А ты далеко уходил? Они могут друг на друга накладываться, во всяком случае раньше надо было удалить предыдущий маркер.
0
Johnny13
1 / 1 / 2
Регистрация: 18.10.2011
Сообщений: 50
16.02.2017, 18:06  [ТС] #3
да, я запускал когда ехал домой, в лог файл пишутся изменённые координаты, но маркер не двигается по карте
0
vxg
Модератор
3236 / 2040 / 319
Регистрация: 13.01.2012
Сообщений: 7,898
16.02.2017, 18:11 #4
Johnny13, у вас экран не гасило все это время? Может маркёры в паузе добавляет, а при разворачивании вы все очищаете?
0
Johnny13
1 / 1 / 2
Регистрация: 18.10.2011
Сообщений: 50
16.02.2017, 18:16  [ТС] #5
Экран не гасил, наблюдал за сменой позии маркера во время движения в транспорте, но он так и не сдвинулся
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
 
        MapFragment mapFragment = (MapFragment) getFragmentManager()
                    .findFragmentById(R.id.mapFragment);
            mapFragment.getMapAsync(this);
 
 
        listener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                if (mMap != null) {
                    mMap.clear();
 
                    writeFileSD(location);
                    coordinats = new LatLng(latitude, longitude);
                    mMap.addMarker(new MarkerOptions().position(coordinats).title("I'm Here " + counter));
                    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinats, 15));
                    counter++;
                }
            }
 
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
            }
 
            @Override
            public void onProviderEnabled(String provider) {
            }
 
            @Override
            public void onProviderDisabled(String provider) {
            }
        };
        try {
            locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
 
            // getting GPS status
            isGPSEnabled = locationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
 
            // getting network status
            isNetworkEnabled = locationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
 
            if (!isGPSEnabled && !isNetworkEnabled) {
                // no network provider is enabled
            } else {
                // First get location from Network Provider
                if (isNetworkEnabled) {
                    if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                            && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                        // TODO: Consider calling
                        //    ActivityCompat#requestPermissions
                        // here to request the missing permissions, and then overriding
                        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                        //                                          int[] grantResults)
                        // to handle the case where the user grants the permission. See the documentation
                        // for ActivityCompat#requestPermissions for more details.
//                        return TODO;
                    }
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, listener);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                // if GPS Enabled get lat/long using GPS Services
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, listener);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                }
            }
 
        } catch (Exception e) {
            e.printStackTrace();
        }
}
 
@Override
    public void onMapReady(GoogleMap googleMap) {
//        coordinats(googleMap);
        mMap = googleMap;
 
        GPSTracker gps = new GPSTracker(this);
        if (gps.canGetLocation()) {
            // Add a marker in Sydney and move the camera
            coordinats = new LatLng(gps.getLatitude(), gps.getLongitude());
        }
        mMap.addMarker(new MarkerOptions().position(coordinats).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinats, 15));
 
    }
0
16.02.2017, 18:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2017, 18:16

Android studio шаблон GoogleMap Activity
Создал шаблон гугл карт. В value есть файл google_maps_api.xml(debug)// ...

GoogleMap ClusterManager и обработка кликов по нем
Всем доброго дня! Встал вопрос с обработкой кликов по кластерам....

GoogleMap. Восстановление карты после смены ориентации экрана
GoogleMap V2. Через onSaveInstanceState / onRestoreInstanceState...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru