Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
_Vertigo_
14 / 14 / 2
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
#1

Получение своего местоположения на карте - Программирование Android

24.11.2014, 15:06. Просмотров 1215. Ответов 5
Метки нет (Все метки)

Здравствуйте. Есть небольшая проблема с получением своего местоположения на карте. Никак не могу понять, как это сделать.
Что пробовал:

Java
1
2
3
4
private GoogleMap mMap;
public void GoButtonClick(View view) {
mMap.getMyLocation();
}
Данный способ крашится при вызове в программе по нажатию на кнопку.

Так же пытался "вешать" слушателя на событие, которое меняло местоположение:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private GoogleMap mMap;
private GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() {
        @Override
        public void onMyLocationChange(Location location) {
            LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
            mMarker = mMap.addMarker(new MarkerOptions().position(loc));
            if(mMap != null){
                mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f));
            }
        }
    };
public void GoButtonClick(View view) {
mMap.setOnMyLocationChangeListener(myLocationChangeListener);
}
Тот же результат.
Как реализовать данную функцию?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 15:06     Получение своего местоположения на карте
Посмотрите здесь:

Программа для отслеживания местоположения по карте - Программирование Android
Доброго времени суток. Помогите пожалуйста написать программу для отслеживания местоположения телефона по карте... очень нужно . зарание...

Разработка приложения для отображения местоположения пользователей на карте - Программирование Android
Доброго времени суток! Собираюсь разработать приложение по типу "Find my friends" или "Locate my friends" под Android. По сути, приложение...

Отобразить кнопку своего местоположения в Google Maps - Программирование Android
Как добавить (отобразить) кнопку своего местоположения в картах Google версии 1?

Получение своего номера - Программирование Android
Добрый день. Почему не выводится номер телефона вроде код правильно написать. Manifest <uses-permission...

Получение координат gps из своего класса (getLastKnownLocation) - Программирование Android
Один из методов класса содержит Location location; LocationManager lm = (LocationManager)...

Определение местоположения - Программирование Android
Добрый день! Возник интересный вопрос: Можно ли в приложении сделать такую функцию, чтобы допустим я мог через компьютер отслеживать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,107
24.11.2014, 15:54     Получение своего местоположения на карте #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Создаем такой сервис в отдельном классе.
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
 
public class GPSTracker extends Service implements LocationListener {
 
    private final Context mContext;
    boolean isGPSEnabled = false;
    boolean isNetworkEnabled = false;
    boolean canGetLocation = false;
 
    Location location;
    double latitude;
    double longitude;
 
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;
    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1;
    protected LocationManager locationManager;
 
    public GPSTracker(Context context) {
        this.mContext = context;
        getLocation();
    }
 
    public Location getLocation() {
        
        try {
            locationManager = (LocationManager) mContext
                    .getSystemService(LOCATION_SERVICE);
 
            isGPSEnabled = locationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
 
            isNetworkEnabled = locationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
 
            if (!isGPSEnabled && !isNetworkEnabled) {
            } else {
                this.canGetLocation = true;
                if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        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();
        }
 
        return location;
    }
     
    public void stopUsingGPS(){
        if(locationManager != null){
            locationManager.removeUpdates(GPSTracker.this);
        }       
    }
     
    public double getLatitude(){
        if(location != null){
            latitude = location.getLatitude();
        }
        return latitude;
    }
    
    public double getLongitude(){
        if(location != null){
            longitude = location.getLongitude();
        }
        return longitude;
    }
 
    public boolean canGetLocation() {
        return this.canGetLocation;
    }
 
    @Override
    public void onLocationChanged(Location location) {
    }
 
    @Override
    public void onProviderDisabled(String provider) {
    }
 
    @Override
    public void onProviderEnabled(String provider) {
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
 
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
 
}
Как использовать. В нужном фрагменте или активности создаем объект и используем его функции получения координат.
Java
1
2
GPSTracker gps = new GPSTracker(this);
LatLng location = new LatLng(gps.getLatitude(), gps.getLongitude());
_Vertigo_
14 / 14 / 2
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
24.11.2014, 16:27  [ТС]     Получение своего местоположения на карте #3
dajver, спасибо, а можешь литературу дать?
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,107
24.11.2014, 16:31     Получение своего местоположения на карте #4
Литературу по андроиду? Советую искать все ответы на stackoverflow. Забивайте любые вопросы касающиеся вашей проблемы на английском, и вам в первую очередь выпадет то что вы ищите. А по поводу литературы ничего не посоветую, учил язык уже на основе знаний языка Си и по мануалам разным.

http://startandroid.ru/ru/ возможно вам поможет. Куча туториалов разных.
_Vertigo_
14 / 14 / 2
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
24.11.2014, 16:50  [ТС]     Получение своего местоположения на карте #5
dajver, нет, не по андроиду, а по твоему коду. Или хотя бы какой-то мануал по работе с картами. На стартандроиде на карты всего 3 урока, этого маловато мне.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2014, 18:21     Получение своего местоположения на карте
Еще ссылки по теме:

Точное определение местоположения - Программирование Android
здравствуйте,может кто знает как решаются такие задачи? нужно узнать точное местоположения(в пределах 1-2 домов). использую...

GPS - Изменение местоположения - Программирование Android
Здравствуйте ув. Программисты. Как можно реализовать следующее: -Есть программа при запуске определяет местоположение и...

Вылетает приложение с определением местоположения - Программирование Android
Здравствуйте! Есть простенькое приложение для определения местоположения. При запуске оно выдает ошибку. Не могу понять в чем дело. Кто...

Увеличить точность определения местоположения - Программирование Android
Всем привет, хотел спросить каким образом можно повысить точность определения местоположения? И использую LocationManager, с GPS...

Какие разрешения нужны для определения местоположения? - Программирование Android
Какое разрешение нада прописать в манифест чтобы приложение могло определять местоположение?

Разработка мобильного приложения на ОС Андроид с функцией определения местоположения обьектов - Программирование Android
Ребята , доброго времени суток, долго мучался с определением темы на диплом в университете.В ключевом итоге остановился на...


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

Или воспользуйтесь поиском по форуму:
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
24.11.2014, 18:21     Получение своего местоположения на карте #6
_Vertigo_, http://www.vogella.com/tutorials/And...s/article.html
http://www.androidhive.info/2013/08/...oogle-maps-v2/
http://code.tutsplus.com/tutorials/a...--mobile-15896

Добавлено через 1 минуту
По GPS:
http://www.androidhive.info/2012/07/...ager-tutorial/
Yandex
Объявления
24.11.2014, 18:21     Получение своего местоположения на карте
Ответ Создать тему
Опции темы

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