С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40

Google Maps местоположение

09.09.2015, 20:20. Показов 3222. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуевина следующая - подключил гугл карты к своему приложению, теперь надо как-то реализовать кнопку "мое местоположение".. стандартная кнопка не работает, автоматическое местоположение всегда отбивает null ... весь гугль перерыл за 8 часов, так ничего рабочего и не нашел. Помогите с реализацией данной задачи

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
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
 
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
 
import java.util.List;
 
 
public class MapsActivity extends FragmentActivity {
 
 
    final String TAG = "myLogs";
    SupportMapFragment mapFragment;
    GoogleMap map;
    CameraUpdate cameraUpdate;
    LocationManager lm;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(anita.allbelarusmodule.R.layout.activity_map);
 
        createMapView();
 
        Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        Location location2 = map.getMyLocation();        
        Log.d(TAG, "LastKnownLocation: " + location+ " getMyLocation" + location2);
 
    }
 
  private void createMapView(){
 
        try {
            mapFragment = (SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.mapView);
            map = mapFragment.getMap();
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
            map.getUiSettings().setZoomControlsEnabled(true); 
            map.getUiSettings().setMyLocationButtonEnabled(true); 
            map.setMyLocationEnabled(true); 
 
        } catch (NullPointerException exception){
            Log.e("mapApp", exception.toString());
        }
    }
 
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2015, 20:20
Ответы с готовыми решениями:

Google Maps 2. Ограничение на количество запросов к google
Google накладывает ограничение на количество запросов в день к Google Maps (2500 в день на ключ). Скажите, как можно узнать, какое кол-во...

Google maps
Здравствуйте! Недавно начал разработку приложения с использованием google maps и при первом же этапе проектирования возникли проблемы....

Google Maps
Здравствуйте! Подскажите для начала как можно тестировать Google Maps на эмуляторах и на пример на каком, сейчас использую droid4x. ...

2
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.09.2015, 20:28
poy4eg, изи. Нужно вызвать у location manager метод requestLocationUpdate, и как только Вы узнаете текущую локацию отобразить её на карте.
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40
10.09.2015, 02:33  [ТС]
Вот сырой код, но все рабочее - может кому поможет ^^

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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
package anita.allbelarusmodule.activity;
 
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
 
import android.location.LocationListener;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
 
 
import anita.allbelarusmodule.R;
 
 
public class MapsActivity extends AppCompatActivity {
 
    final String TAG = "myLogs";
 
    Toolbar toolbar;
 
    SupportMapFragment mapFragment;
    GoogleMap map;
    LocationManager lm;
 
    CameraPosition cameraPosition;
    CameraUpdate cameraUpdate;
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(anita.allbelarusmodule.R.layout.activity_map);
 
        toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
        setSupportActionBar(toolbar);
 
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(true);
 
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
 
        getSupportActionBar().setTitle("Карты");
 
        createMapView();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_map, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.geosettings) {
            startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
            return true;
        }
        else if (id == R.id.geosettings) return true;
 
        return super.onOptionsItemSelected(item);
    }
 
    private void createMapView(){
 
        try {
            mapFragment = (SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.mapView);
            map = mapFragment.getMap();
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL); //тип карты
            lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
            map.getUiSettings().setZoomControlsEnabled(true); //кнопки зума
            map.getUiSettings().setMyLocationButtonEnabled(false); //кнопка определения местоположения
            map.setMyLocationEnabled(true); //определение местоположения
 
        } catch (NullPointerException exception){
            Log.e("mapApp", exception.toString());
        }
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 10, 10, locationListener);
        lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000 * 10, 10,locationListener);
        checkEnabled();
    }
 
    @Override
    protected void onPause() {
        super.onPause();
        lm.removeUpdates(locationListener);
    }
 
    public void SetLoc(Location location) {
        cameraPosition = new CameraPosition.Builder()
                .target(new LatLng(location.getLatitude(), location.getLongitude()))
                .zoom(13)
                .tilt(20) //угол наклона карты
                .build();
        cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
        map.animateCamera(cameraUpdate);
    }
 
    private LocationListener locationListener = new LocationListener() {
 
 
        @Override
        public void onLocationChanged(Location location) {
            showLocation(location);
        }
 
        @Override
        public void onProviderDisabled(String provider) {
            checkEnabled();
        }
 
        @Override
        public void onProviderEnabled(String provider) {
            checkEnabled();
            showLocation(lm.getLastKnownLocation(provider));
        }
 
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            if (provider.equals(LocationManager.GPS_PROVIDER)) {
                Log.d("LocListner","Status GPS_PROVIDER: " + String.valueOf(status));
            } else if (provider.equals(LocationManager.NETWORK_PROVIDER)) {
                Log.d("LocListner","Status NETWORK_PROVIDER: " + String.valueOf(status));
            }
        }
    };
 
    private void showLocation(Location location) {
        if (location == null){
            return;}
        if (location.getProvider().equals(LocationManager.GPS_PROVIDER)) {
            SetLoc(location);
        } else if (location.getProvider().equals(LocationManager.NETWORK_PROVIDER)) {
            SetLoc(location);
        }
    }
 
 
    private void checkEnabled() {
        Log.d("LocListner","Enabled GPS_PROVIDER: "
                + lm.isProviderEnabled(LocationManager.GPS_PROVIDER));
        Log.d("LocListner","Enabled NETWORK_PROVIDER: "
                + lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER));
    }
 
 
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.09.2015, 02:33
Помогаю со студенческими работами здесь

Google maps
Уважаемые, подскажите что не так. Пытаюсь подключить карту. mapFragment = (SupportMapFragment) getSupportFragmentManager() ...

Google maps v2
Внезапно встала задача запилить приложение на основе сабжа. Опыта разработки под андроид нет. Эклипс установил, сделал все по инструкции...

Google maps маркеры
Можно ли добавить в маркер дополнительную информацию и как? К примеру стандартное mMap.addMarker(new MarkerOptions().position(new...

Google maps API v2
Перешёл на новые API для карт google. Программирую под платформу 2.2, поэтому использую SupportMapFragment. Проблема 1. Если добавить...

Не работает Google Maps
Так-как вы мне не ответили на прошлые посты(большое вам за это спасибо),я решил всё сделать через компьютер и опять наткнулся на проблему в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru