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

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

Войти
Регистрация
Восстановить пароль
 
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
#1

Отображения маркера на карте при длительном нажатии osmdroid - Программирование Android

27.03.2015, 11:33. Просмотров 646. Ответов 0
Метки нет (Все метки)

Здравствуйте! Я пытаюсь реализовать на карте отображение маркера при длительном нажатии на нее... Перерыл весь интернет, нашел только один пример кода. Но при вставки в проект у меня практически все подчеркивается красным... Помогите разобраться какие методы и классы тут нужно объявлять и как вообще этим пользоваться...
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
MapEventsReceiver mReceive = new MapEventsReceiver() {
 
    @Override
    public boolean singleTapUpHelper(IGeoPoint arg0) {
     Log.d("debug", "Single tap helper");
     //your onSingleTap logic here
    return false;
    }
 
    @Override
    public boolean longPressHelper(IGeoPoint arg0) {
    Log.d("debug", "LongPressHelper");
    //your onLongPress logic here
    setMarker(arg0);
    return false;
    }
};
 
//Creating a handle overlay to capture the gestures
MapEventsOverlay OverlayEventos = new MapEventsOverlay(getBaseContext(), mReceive);
map.getOverlays().add(OverlayEventos);
 
//Refreshing the map to draw the new overlay
map.invalidate();
 
 
//I use this method to set the marker on touchPoint
    protected void setMarker(IGeoPoint arg0) {
 
touchPoint = (GeoPoint) arg0;
targetPoint = touchPoint;
path.addPoint(targetPoint);
 
//Listener to handle item's(markers) events
 myOnItemGestureListener = new OnItemGestureListener<OverlayItem>() {
 
    @Override
    public boolean onItemLongPress(int arg0, OverlayItem arg1) {
    Log.d("debug", "Testing long tap on item");
    //your item onLongPress logic here
        return false;
    }
 
    @Override
    public boolean onItemSingleTapUp(int index, OverlayItem item) {
    Log.d("debug", "Testing single tap on item");
    //your item onSingleTap logic here
        return true;
    }
};
 
itemarray.add(new OverlayItem("Marker " + cnt, "Info about marker " + cnt, touchPoint));
 
ItemizedOverlayWithFocus<OverlayItem> overlayDeItems = new ItemizedOverlayWithFocus<OverlayItem>(getBaseContext(), itemarray, myOnItemGestureListener);
map.getOverlays().add(overlayDeItems);
 
overlayDeItems.setFocusItemsOnTap(true);
map.invalidate();
itemarray = new ArrayList<OverlayItem>();
   cnt++;
}
Добавлено через 17 часов 46 минут
после долгих мучений переделал этот код вот под этот:
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
MapEventsReceiver mReceive = new MapEventsReceiver() {
 
 
        @Override
        public boolean singleTapConfirmedHelper(GeoPoint p) {
            Log.d("debug", "Single tap helper");
            //your onSingleTap logic here
            logUser("korotkoe nazhatie");
            return false;
        }
 
        @Override
        public boolean longPressHelper(GeoPoint p) {
            Log.d("debug", "LongPressHelper");
            //your onLongPress logic here
            logUser("Dlinnoe nazhatie");
            MapEventsOverlay OverlayEventos = new MapEventsOverlay(getBaseContext(), mReceive);
            mapView.getOverlays().add(OverlayEventos);
 
//Refreshing the map to draw the new overlay
            mapView.invalidate();
 
            return false;
        }
    };
вроде все норм, скомпилировалось, запустил на телефоне, но... на нажатие никак не реагирует, ни лога не выводит ни метку не ставит, какбудто вызова этих функций не происходит, не могу понять почему.

Добавлено через 32 минуты
даже так переделал, все равно не работает, никак не реагирует...
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
 MapEventsReceiver mReceive = new MapEventsReceiver() {
 
 
        @Override
        public boolean singleTapConfirmedHelper(GeoPoint p) {
            Log.d("debug", "Single tap helper");
            //your onSingleTap logic here
            logUser("korotkoe nazhatie");
            return false;
        }
 
        @Override
        public boolean longPressHelper(GeoPoint p) {
            Log.d("debug", "LongPressHelper");
            //your onLongPress logic here
            logUser("Dlinnoe nazhatie");
            //Creating a handle overlay to capture the gestures
            setMarker(p);
            MapEventsOverlay OverlayEventos = new MapEventsOverlay(getBaseContext(), mReceive);
            mapView.getOverlays().add(OverlayEventos);
 
//Refreshing the map to draw the new overlay
            mapView.invalidate();
 
            return false;
        }
    };
 
 
 
 
    //I use this method to set the marker on touchPoint
   protected void setMarker(IGeoPoint arg0) {
 
       GeoPoint touchPoint = (GeoPoint) arg0;
    //  GeoPoint  targetPoint = touchPoint;
 
       //mapView.getOverlays().add(targetPoint);
 
//Listener to handle item's(markers) events
     ItemizedIconOverlay.OnItemGestureListener   myOnItemGestureListener = new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
 
            @Override
            public boolean onItemLongPress(int arg0, OverlayItem arg1) {
                Log.d("debug", "Testing long tap on item");
                //your item onLongPress logic here
                logUser("Dlinnoe nazhatie");
                return false;
            }
 
            @Override
            public boolean onItemSingleTapUp(int index, OverlayItem item) {
                Log.d("debug", "Testing single tap on item");
                //your item onSingleTap logic here
                logUser("korotkoe nazhatie");
                return true;
            }
        };
 
       ArrayList<OverlayItem> itemarray = new ArrayList<OverlayItem>();
        itemarray.add(new OverlayItem("Marker " , "Info about marker " , touchPoint));
 
        ItemizedOverlayWithFocus<OverlayItem> overlayDeItems = new ItemizedOverlayWithFocus<OverlayItem>(getBaseContext(), itemarray, myOnItemGestureListener);
        mapView.getOverlays().add(overlayDeItems);
 
        overlayDeItems.setFocusItemsOnTap(true);
        mapView.invalidate();
      //  itemarray = new ArrayList<OverlayItem>();
        //cnt++;
    }
Добавлено через 59 секунд
вот как сделать чтоб реагировал на нажатия на карту?...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2015, 11:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отображения маркера на карте при длительном нажатии osmdroid (Программирование Android):

Как нарисовать кастомную иконку маркера на карте? - Программирование Android
Доброго дня. Мне необходимо разместить на Google карте кастомный маркер (маленькая картинка) В параметрах штатного Map.AddMarker можно...

Разработка приложения для отображения местоположения пользователей на карте - Программирование Android
Доброго времени суток! Собираюсь разработать приложение по типу &quot;Find my friends&quot; или &quot;Locate my friends&quot; под Android. По сути, приложение...

Вылитает при длительном нажатии очистки строки - Delphi FireMonkey
Вылетает при длительном нажатии в поле edit при долгом нажатии на кнопки стирания символа. то есть если стираю едит прерывистыми...

Как стилизовать на карте гугл значок маркера? - JavaScript
с таким не сталкивалась ни когда где об этом почитать чтоб ясно все стало

При нажатии на ссылку на карте должна появляться вкладка с адресом и телефоном - JavaScript
Здравствуйте! Нужна помощь. Нас странице (внизу) есть меню и карта http://work.snamy.com.ua/address.html. При нажатии на пункт меню...

программа для отображения объекта на карте по координатам - C#
задача такая я задаю координаты объекта программа отображает объект на карте! могу я как то использовать Google Maps или же готовую карту...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2015, 11:33
Привет! Вот еще темы с ответами:

Использование данных из dataGridView для отображения на карте - C#
Есть такая проблема. В Form1 создан gMapControl1private void gMapControl1_Load(object sender, EventArgs e) { ...

contextswitchdeadlock при длительном подключении - C#
Программа парсит xml и заносит данные в базу MySql. Обрабатываю один файл xml, затем ничего не делаю минут 5, затем обрабатываю 2й xml....

Мгновенный вывод при длительном выполнении - PHP
Здравствуйте, Есть цикл: while...{ echo &quot;123&quot;; sleep(100); } Как сделать, чтобы надпись 123 сразу попадала на экран, потому...

Не гаснет экран при длительном простое - Windows 7
Здравствуйте, коллеги! Столкнулся с проблемой,которую пока решить не могу. При длительном простое компа (более 30 мин) не гаснет...


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

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

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