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

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

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

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

24.11.2014, 15:06. Просмотров 1261. Ответов 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);
}
Тот же результат.
Как реализовать данную функцию?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 15:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение своего местоположения на карте (Программирование Android):

Программа для отслеживания местоположения по карте - Программирование 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,111
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());
1
_Vertigo_
14 / 14 / 2
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
24.11.2014, 16:27  [ТС] #3
dajver, спасибо, а можешь литературу дать?
0
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,111
24.11.2014, 16:31 #4
Литературу по андроиду? Советую искать все ответы на stackoverflow. Забивайте любые вопросы касающиеся вашей проблемы на английском, и вам в первую очередь выпадет то что вы ищите. А по поводу литературы ничего не посоветую, учил язык уже на основе знаний языка Си и по мануалам разным.

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.11.2014, 18:21
Ответ Создать тему
Опции темы

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