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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
#1

Несколько snippet для маркера Google Maps v.2 - Программирование Android

05.07.2013, 00:54. Просмотров 1616. Ответов 14
Метки нет (Все метки)

Пользуюсь картами Google Maps v.2, там маркер добавляется вот так
Java
1
2
3
4
5
markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(56.369877,89.069988));  // позиция
markerOptions.title("Title");                                // название
markerOptions.snippet("Info");                         // информация
marker = myMap.addMarker(markerOptions);       // добавление на карту
И есть класс, который реализует инфоокно (баллун) на маркете
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MyInfoWindowAdapter implements InfoWindowAdapter{
 
           private final View myContentsView;
 
           MyInfoWindowAdapter(){                 
                   myContentsView = getLayoutInflater().inflate(R.layout.custom_info_contents, null);
                   }
  
           public View getInfoContents(Marker marker) {
   
                   tvTitle = ((TextView)myContentsView.findViewById(R.id.title));
                   tvTitle.setText(marker.getSnippet());
                     
               return myContentsView;
           }
 
           public View getInfoWindow(Marker marker) {
                  return null;
           }
  
       }
То есть в этом классе, я беру из маркера описание и вставляю его в TextView. Но у меня вопрос: как можно создать несколько описаний для маркера? Сейчас их два (название и инфа), но мне нужно ещё третье (для избранных пользователей). Как такое сделать и возможно ли?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 00:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Несколько snippet для маркера Google Maps v.2 (Программирование Android):

Разные drawable для маркера Google Maps - Программирование Android
Здравствуйте. Есть код главной активити @Override public void onCreate(Bundle savedInstanceState) { ...

Привязка маркера к камере в google maps - Программирование Android
Нужно сделать так что бы маркер добавленый на карту двигался вместе с камерой как вот здесь : http://jsfiddle.net/doktormolle/jcHqt/ ...

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

Google maps метод поиска фрагмента карт на разметке для разных версий андроид - Программирование Android
Столкнулся с такой проблемой. в андройде 6 работает один метод поиска фрагмента карт на разметке а в 5 и ранее - другой. //api 21+ ...

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

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

14
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2013, 01:08 #2
просто добавьте в лаяут.
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
05.07.2013, 11:46  [ТС] #3
Что добавить?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2013, 12:03 #4
а что вам нужно?
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
05.07.2013, 14:12  [ТС] #5
Добавлено через 1 минуту
Мне нужно грубо говоря сделать вот так
Java
1
2
3
4
5
6
markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(56.369877,89.069988));  // позиция
markerOptions.title("Title");                    // название
markerOptions.snippet("Info");                         // информация
markerOptions.snippet("Secret");          // информация, которая видна будет не всем
marker = myMap.addMarker(markerOptions);       // добавление на карту
Вообще вся инфа в маркеры загружается из базы, там около 10 маркеров, всем им я хочу сделать Название, Описание 1 и Описание 2 ( Описание 2 будет выводиться не всем пользователям).

В стандартных опциях маркеров есть только Название и Описание.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2013, 22:55 #6
Java
1
2
3
4
5
String info = "Info";
if(showSecretinfo){
    info +="\n" + "Secret";
}
markerOptions.snippet(info);
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
05.07.2013, 22:58  [ТС] #7
Цитата Сообщение от V0v1k Посмотреть сообщение
showSecretinfo
Это какой-то метод или что?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2013, 23:00 #8
это boolean указывающая выводить или нет секретную инфу.
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
05.07.2013, 23:21  [ТС] #9
Я вам наверное не так объяснил.
Вот мой код загрузки точек
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
             markers = new ArrayList<Marker>();
                        for ( int i = 0; i < ob.size(); i++) {              
                              stranaGet = ob.get(i).getString("Strana");
                              oblastGet = ob.get(i).getString("Oblast");
                              emailGet = ob.get(i).getString("Email");
                               
                              markerOptions = new MarkerOptions();
                              markerOptions.position(new LatLng(geo1,geo2));
                              markerOptions.title(stranaGet);
                              markerOptions.snippet(oblastGet);                              
                              markerGet = myMap.addMarker(markerOptions);
                              markers.add(markerGet);
                         }
Так вот мне нужно "куда-то" к маркеру прицепить emailGet, вариант
Java
1
markerOptions.snippet(oblastGet+"\n"+emailGet);
не подходит, потому как мне нужно чтоб oblastGet и emailGet были отдельно, потому что точки могут добавлять сами пользователи, и когда пользователь нажмет на маркер, я сравню текущий аккаунт с тем, который в emailGet, если они совпадают, то будут определенные действия.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2013, 23:43 #10
Java
1
2
3
4
public class MyMarkerOptions extends MarkerOptions {
          public void setEmail(String email){...}
          public String getEmail(){...}
}
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
05.07.2013, 23:46  [ТС] #11
А дальше как?
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
09.07.2013, 17:16  [ТС] #12
Цитата Сообщение от V0v1k Посмотреть сообщение
public class MyMarkerOptions extends MarkerOptions {
* * * * * public void setEmail(String email){...}
* * * * * public String getEmail(){...}
}
Как это дальше использовать?
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
09.07.2013, 19:57 #13
V0v1k, MarkerOptions объявлен как final
0
Chernoff20
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 28
09.07.2013, 22:16  [ТС] #14
Цитата Сообщение от Venzo Посмотреть сообщение
V0v1k, MarkerOptions объявлен как final
А вы знаете как нужно сделать?
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
09.07.2013, 23:49 #15
Цитата Сообщение от Chernoff20 Посмотреть сообщение
А вы знаете как нужно сделать?
если б знал, то написал бы

хотя костыль могу предложить:
Создаете класс CustomMarker с дополнительными полями.
Создаете map<Marker, CustomMarker>.

Код
marker = myMap.addMarker(markerOptions);       // добавление на карту
тут в map добавляете нужный CustomMarker по ключу marker.

Код
           public View getInfoContents(Marker marker) {
   
                   tvTitle = ((TextView)myContentsView.findViewById(R.id.title));
                   tvTitle.setText(marker.getSnippet());
                     
               return myContentsView;
           }
а тут из map'a достаете свой кастомный маркер по ключу marker и используете его поля

но решение так себе, надеюсь существует получше и его тут покажут
0
09.07.2013, 23:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2013, 23:49
Привет! Вот еще темы с ответами:

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

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

Использование google maps - Программирование Android
Мне досталось приложение, которое использует google maps. Достаточно старый уже. Приложение есть на маркете, если скачивать от туда, то все...

Подключить Google Maps - Программирование Android
Добрый день подключаю Google Maps. С получением ключей и прочим проблем не возникало. Делаю как здесь сказано...


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

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

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