Передача данных в класс maps в Android

#java #android #maps

#java #Android #Карты

Вопрос:

Итак, я работаю над проектом для моей школы с группой, и мы думаем о внедрении способа получения списка преподавателей и сотрудников и возможности «отобразить их» или их офис на карте кампуса на Android. В настоящее время карта работает с функциями itemizedOverlays и увеличения и уменьшения масштаба.

Мой вопрос в том, когда кто-то, кто использует это приложение для Android, выбирает преподавателя и сотрудника, как я могу передать их информацию (которая будет просто их именем) в наш класс maps и использовать ее с itemizedOverlays?

код здесь: http://code.google.com/a/eclipselabs.org/p/mtsu-andriod/source/browse/trunk/ mtsu-andriod —username craigmurphy88@gmail.com/MTSU Android/src/com/MTSUAndroid/CampusMap.java

мы будем передавать имя преподавателя ИЗ класса person В класс maps.

Комментарии:

1. Вы должны принять ответ, чтобы повысить свою репутацию или, по крайней мере, оценить усилия человека, который ответил на ваш вопрос.

Ответ №1:

Вы также могли бы использовать дополнительные параметры Intent, как описано здесь:

http://developer.android.com/reference/android/content/Intent.html

 private long lat, lng;
//.. onCreate
   lat = getIntent().getLongExtra("lat");
   lng = getIntent().getLongExtra("lon");

//...
GeoPoint office = new GeoPoint(lat, lng);
OverlayItem oi = new OverlayItem(office, "", "");
itemizedOverlay.addOverlay(oi);
//.. and so on.
  

Одним нажатием вы можете запустить свое намерение карты следующим образом (‘i’ — это ваше намерение карты, а ‘t’ — ваш объект Teacher):

 i.putExtra("lat", t.getPos().getLat());
i.putExtra("lng", t.getPos().getLng());
  

Комментарии:

1. Большое вам спасибо! Я собираюсь попробовать это и рассказать об этом нашей группе! Я люблю stackoverflow!

Ответ №2:

Извините, я не понимаю вашу точку зрения. Если вы хотите, чтобы конкретное оповещение отображалось при событии tap, вы могли бы расширить OverlayItem, чтобы у него был дополнительный параметр с вашим «Идентификатором пользователя» или что-то в этом роде. Затем с помощью метода onTap в оверлее получите Person, который соответствует этому идентификатору (после приведения вашего объекта, конечно). И соответствующим образом отобразить предупреждение.

То же самое происходит, если вы хотите отобразить наложение (или набор элементов наложения) в соответствии с ранее выбранным элементом. Это должно быть довольно просто: либо передать параметр конструктору CampusMap, либо (уродливый подход, но более быстрый) сохранить выбранный элемент в статическом классе и получить к нему доступ с карты.

Комментарии:

1. Что ж, у нас будет список преподавателей и сотрудников кампуса с их именами и фамилиями. Вы можете щелкнуть по ним, и тогда отобразится определенная информация о них. Он также будет иметь 4 варианта кнопок. Один из них называется «map it», и он покажет, где в кампусе находится кабинет преподавателя. Мой вопрос в том, как я могу передать эту информацию об учителях методу OnTap, я полагаю. Поскольку эта информация находится в классе, отличном от класса map.

2. Я понял. Просто передайте на карту либо полный класс, либо широту GPS. И добавьте дополнительный элемент наложения для этой широты. Вы могли бы даже создать новый конструктор для вашего класса MapView, который получает класс Teacher (с указанием его / ее должности в офисе) и распечатать его соответствующим образом.

3. Вы также могли бы использовать дополнительные параметры Intent, как описано здесь: developer.android.com/reference/android/content/Intent.html ` private long lat, lng; //.. onCreate lat = GetIntent().getLongExtra(«широта»); lng = GetIntent().getLongExtra(«длина»); //… GeoPoint office = новая геопункта (широта, lng); OverlayItem oi = новый OverlayItem(office, «», «»»); ItemizedOverlay.addOverlay(oi); // .. и так далее. ` Одним нажатием вы можете запустить свое намерение карты следующим образом (‘i’ — ваше намерение карты, а ‘t’ — ваш объект Teacher): ` i.putExtra («широта», т.е.getPos().getLat()); i.putExtra («lng», т.е.getPos().getLng()); `