- 0
MapView InfoWindowAdapter - нужно отобразить свой текст в окне по клику на маркер
-
Похожий контент
-
- 6 ответов
- 3 579 просмотров
-
- 0 ответов
- 1 706 просмотров
-
- 7 ответов
- 1 794 просмотра
-
tmapview [TMapView] Возможно ли использовать у компонента TMapView сторонние серверы, например, OpenStreetmap.
От Ерлан,
- 3 ответа
- 2 207 просмотров
-
- 3 ответа
- 2 138 просмотров
-
- 9 ответов
- 3 359 просмотров
-
- 2 ответа
- 1 349 просмотров
-
- 6 ответов
- 2 032 просмотра
-
- 4 ответа
- 1 803 просмотра
-
- 3 ответа
- 2 352 просмотра
-
-
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Вопрос
sargon
Добрый день, уважаемое сообщество. Возник такой вопрос, по нажатию на маркер на карте нужно показывать свой InfoWindow. как тут. Может быть кто-то такое уже делал, прошу помочь кодом. Попытался сделать как здесь. Там на Java, но я переписал на Delphi. Компилится, но в рантайме выдает Segmentation class (11), AV и проч. может кто-нибудь может подсказать в чем проблема. Делаю так
... TMyAndroidInfoWindowAdapter = class (TJavaLocal, JGoogleMap_InfoWindowAdapter) private FMapControl: TAlexAndroidMapView; public function getInfoContents(P1: JMarker): JView; cdecl; function getInfoWindow(P1: JMarker): JView; cdecl; end; ... function TMyAndroidInfoWindowAdapter.getInfoContents(P1: JMarker):JView; var LinearLayout:JLinearLayout; snippet, title:JTextView; begin LinearLayout:=TJLinearLayout.JavaClass.init(TAndroidHelper.Activity); title:=TJTextView.JavaClass.init(TAndroidHelper.Activity); title.setTextColor(TAlphaColorRec.Brown); title.setText(JCharSequence(P1.getTitle)); snippet:=TJTextView.JavaClass.init(TAndroidHelper.Activity); snippet.setTextColor(TAlphaColorRec.Coral); snippet.setText(JCharSequence(P1.getSnippet)); LinearLayout.addView(title); LinearLayout.addView(snippet); result:=LinearLayout; end; function TMyAndroidInfoWindowAdapter.getInfoWindow(P1: JMarker):JView; begin Result:=nil; end;
При создании экземпляра JMapView делаю так
... if not Assigned(FWindowsAdapter) then FWindowsAdapter:=TAlexAndroidInfoWindowAdapter.Create; FJMapView.getMap.setInfoWindowAdapter(FWindowsAdapter); ...
FWindowsAdapter это поле в моем классе
TMyAndroidMapView = class(TDPFANDBaseControl) protected ... FWindowsAdapter:TAlexAndroidInfoWindowAdapter;
MapView не использую реализовал свой контрол на базе dpf android native components Романа Янковского. Ошибки валятся после выполнения этого метода
function TMyAndroidInfoWindowAdapter.getInfoWindow(P1: JMarker):JView;
begin
Result:=nil; <------ выполнился и сразу Class Segmentation Fault (11)
end;
Опишу зачем вообще я это делаю. Мне в InfoWindow по клику на маркер на карте нужно всего навсего отобразить текст в несколько строк (свойство маркера Snippet), но так как перенос строк почему-то не работает взялся за реализацию WindowInfoAdapter. Может быть все это проще можно сделать. Заранее благодарю за помощь.
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.