С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Центровка по текущей локации в GoogleMap - Программирование Android

09.05.2013, 16:45. Просмотров 3061. Ответов 33
Метки нет (Все метки)

А скажите, вот у меня есть код:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.map);
                
        FragmentManager myFragmentManager = getSupportFragmentManager();
           SupportMapFragment mySupportMapFragment 
            = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
           myMap = mySupportMapFragment.getMap();
           
           myMap.setMyLocationEnabled(true);
    }
загружается карта (map api v2) и показывается синя точка где я нахожусь при нажатии кнопки (на карте значек есть, он появляется при написании этой строчки кода: myMap.setMyLocationEnabled(true) я смещаюсь (центрируюсь) на то место где нахожусь.
А как сделать, чтоб камера сразу центрировалась туда где я нахожусь.??? (нужно чтобы работало на Api 8)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Центровка по текущей локации в GoogleMap (Программирование Android):

Проверка на достижение локации на карте - Программирование Android
Хотелось бы динамически получать координаты и выводить их в виде тоста. @Override protected void onCreate(Bundle...

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

Маркер по центру MapView googleMap - Программирование Android
В некоторых приложениях есть возможность на карте указать свое местоположение. там реализовано так: 1) в центре карты расположен не...

GoogleMap, getMap() выдает ошибку - Программирование Android
вызываю из главного окна новое активити кнопкой вот так: Intent intent = new Intent(MainActivity.this, MapViewActivity.class); ...

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

Android studio шаблон GoogleMap Activity - Программирование Android
Создал шаблон гугл карт. В value есть файл google_maps_api.xml(debug)// <resources> <string...

33
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 01:57 #16
Спасибо, работает. А как использовать
Java
1
2
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
myMap.moveCamera(center);
один раз при запуске? И не использовать location = locationManager.getLastKnownLocation(provider);.
То есть я хочу чтоб активити запустилась, получить локацию и переместить карту, единожды.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 03:10  [ТС] #17
Расскажите, что работает и как? Перемещает карту на центр где я нахожусь?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 11:38 #18
Перемещает карту в центр синей точке. Но это на реальном устройстве, с 2.3.6
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 16:50  [ТС] #19
Цитата Сообщение от Digetix Посмотреть сообщение
Перемещает карту в центр синей точке. Но это на реальном устройстве, с 2.3.6
Мне тоже нужно проверит это на ранней версии - на 2.3.4. А не могли бы вы весь код привести, чтоб сравнить. А то уже сложно понять где, что нужно поменять, тут такие тонкости.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 21:47 #20
Цитата Сообщение от Stylish2013 Посмотреть сообщение
А не могли бы вы весь код привести, чтоб сравнить
Весь код чего?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 22:56  [ТС] #21
Цитата Сообщение от Digetix Посмотреть сообщение
Весь код чего?
Код класса где идёт работа с картой!
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 23:04 #22
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
         @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.main);      
    
        myFragmentManager = getSupportFragmentManager();
            mySupportMapFragment  = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
            myMap = mySupportMapFragment.getMap();
            myMap.setMyLocationEnabled(true);
            
            LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            locationManager.requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 500, 1, new LocationListener (){
                              @Override
                              public void onLocationChanged(Location loc) {
                                  CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
                                  CameraUpdate zoom = CameraUpdateFactory.zoomTo(16);
                                  myMap.moveCamera(center);
                                  myMap.animateCamera(zoom);                                                
                              }
                            @Override
                            public void onProviderDisabled(String arg0) {
}
                            @Override
                            public void onProviderEnabled(String provider) {
}
                            @Override
                            public void onStatusChanged(String provider,int status, Bundle extras) {
}
                         
                            }); 
 
      }
Извините, что код съехавший
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 23:19  [ТС] #23
а это весь код? у меня пишет что обязательно нужно - 4 methods to implement:
-
android.location.LocationListener.onLocationChanged()
- android.location.LocationListener.onProviderDisabled()
- android.location.LocationListener.onProviderEnabled()
- android.location.LocationListener.onStatusChanged()

Добавлено через 1 минуту
Скажите вот так надо?

Javascript
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
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
 
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
 
public class mapActivity extends FragmentActivity{
 
    FragmentManager myFragmentManager;
    SupportMapFragment mySupportMapFragment;
    GoogleMap myMap;
    
     @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.mapLoyaut);      
    
      myFragmentManager = getSupportFragmentManager();
            mySupportMapFragment  = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
            myMap = mySupportMapFragment.getMap();
            myMap.setMyLocationEnabled(true);
            
            LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            locationManager.requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 500, 1, new LocationListener (){
                              @Override
                              public void onLocationChanged(Location loc) {
                                  CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
                                  CameraUpdate zoom = CameraUpdateFactory.zoomTo(16);
                                  myMap.moveCamera(center);
                                  myMap.animateCamera(zoom);                                                
                              }
                            @Override
                            public void onProviderDisabled(String arg0) {
}
                            @Override
                            public void onProviderEnabled(String provider) {
}
                            @Override
                            public void onStatusChanged(String provider,int status, Bundle extras) {
}
                         
                            }); 
       } 
}
Добавлено через 3 минуты
и этот код постоянно сдвигает на центр или нет???
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 23:19 #24
Цитата Сообщение от Stylish2013 Посмотреть сообщение
у меня пишет что обязательно нужно - 4 methods to implement:
Ну так они есть. В коде они
Цитата Сообщение от Stylish2013 Посмотреть сообщение
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
 public void onLocationChanged(Location loc) {
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(16);
myMap.moveCamera(center);
 myMap.animateCamera(zoom);
}
 @Override
 public void onProviderDisabled(String arg0) {
}
@Override
 public void onProviderEnabled(String provider) {
}
 @Override
 public void onStatusChanged(String provider,int status, Bundle extras) {
}
У меня точно такой же код как вы написали. И работает.

Да, постоянно. Можете скинуть мне свой апк, я у себя проверю

Только ж я использую NETWORK
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 23:25  [ТС] #25
Цитата Сообщение от Digetix Посмотреть сообщение
Да, постоянно. Можете скинуть мне свой апк, я у себя проверю
Т.е. 1. запустили приложение оно показало где вы?
2. карту пальцем сместили, оно взяло и вернулось опять на центр синей точки? (если да, то через сколько времени???) у меня просто сдвинул и всё ничего не происходит. как сделать чтобы постоянно обновлялось и сдвигалось?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 23:29 #26
Цитата Сообщение от Stylish2013 Посмотреть сообщение
Т.е. 1. запустили приложение оно показало где вы?
Да.

Цитата Сообщение от Stylish2013 Посмотреть сообщение
карту пальцем сместили, оно взяло и вернулось опять на центр синей точки? (если да, то через сколько времени???)
Карту пальцем сместили ничего не произойдет. Карта смещается как только измениться позиция (координаты) пользователя, параметры обновления записаны в
Java
1
LocationManager.NETWORK_PROVIDER, 500, 1, new LocationListener (){
Где 500 - это 500 мсек, 1 - это 1 метр. То есть каждые 500 мсек и при изменении координат на 1 метр он будет обновлять локацию, соответственно двигать карту на центр. Вроде так должно быть

Или вы хотите сделать, чтоб переместил карту, а оно возвращало на центр, на синюю точку?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 23:32  [ТС] #27
Цитата Сообщение от Digetix Посмотреть сообщение
Вроде так должно быть
А у вас так???

Сча пойду на улицу тестировать. Но вроде сча не центрирует на планшете сразу при запуске активити.((( Но улица всё покажет!)) я скоро)
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 23:34 #28
Цитата Сообщение от Stylish2013 Посмотреть сообщение
А у вас так???
У меня при запуске сразу центрирует. По повода планшета не знаю. И может важно: у меня в манифесте стоит мин СДК 8, а целевой 13
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
11.05.2013, 23:50  [ТС] #29
После теста результаты такие:

1. Планшет теперь вообще не центрирует, хотя до этого работал замечательно.
2. Телефон работает странно. Иногда при перво запуске вообще ничего не делает, а иногда центрирует, но карта сама не подъезжает если стрелка за границами.
Что же делать?? уже не знаю. Как теперь и на планшете сделать чтобы работало?

А у меня в манифесте стоит minSdkVersion="8" и targetSdkVersion="8" - и я менял и результатов не дало.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
11.05.2013, 23:55 #30
А вы один раз на планшете запускали?
0
11.05.2013, 23:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 23:55
Привет! Вот еще темы с ответами:

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

GoogleMap. Восстановление карты после смены ориентации экрана - Программирование Android
GoogleMap V2. Через onSaveInstanceState / onRestoreInstanceState восстанавливаю тип карты, маркеры и положение камеры. Но может есть...

Создание локации - XNA
Хочу создать изометрическую 2.5d игру (не знаю насколько корректно так её называть): карта 2d, персонажи 3d. Чтобы реализовать...

Получить x, y локации пикчербокса - Visual Basic .NET
Всем привет! У меня есть пикчер бокс с координатами 10,20 Как мне в переменную x занести 10, а в y 20?


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

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

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