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

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

Войти
Регистрация
Восстановить пароль
 
 
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
#1

Приложение с геометками - Программирование Android

28.10.2016, 17:46. Просмотров 512. Ответов 16

Добрый день.
Я новичок в разработке на андроид, появилась идея и я пытаюсь ее реализовать. Если в двух словах приложение использует жпс пользователей и делает метку на карте (ориентир foursqure).

Вопрос по поводу меток. Нужно ли организовывать отдельный сервер под все это дело, или гугл карты это покрывают? не очень понимаю этот момент.
Прошу вашего совета.

и если можно, хотел бы в этой теме дальше задавать свои вопросы.

спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2016, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приложение с геометками (Программирование Android):

Допиленное узкоспециализированное приложение или неповоротливое многофункциональное приложение? - Программирование Android
Если вопрос про "что нужно знать?" висит, то и этот должен зайти. Появилась дилемма при выборе идеи для приложения, хочу узнать Ваше...

Узнать приложение которое запустило моё приложение - Программирование Android
Приветствую всех! Помогите разобраться. Есть ли возможность узнать, что за приложение запустило моё приложение? т.е. к примеру мою...

Сообщение "приложение остановлено" постоянно, даже когда приложение вообще не запущено - Программирование Android
Собственно ,сабж в топике

Переделать приложение для Андроид в приложение для ПК - Программирование Android
Встретилась очень мне нужное приложение для анроид систем. К моему сожалению подобных программ нет для систем Windows. Реально ли такие...

.NET 4.x Приложение со всеми библиотеками, или как запустить приложение без установленного FW - C#
Извините, если для профессионалов эта тема покажется уже заезженной, но я не нашла решения в интернете. Я в целях обучения языку С#...

Скомпилировать приложение так, чтобы другое приложение было у него в ресурсах - C#
Хочу написать программу-компилятор, в которой нужно указать файл, и она скомпилирует другую программу, с указанным в ней файлом в качестве...

16
shavuz
111 / 117 / 23
Регистрация: 29.01.2014
Сообщений: 584
30.10.2016, 12:20 #2
не очень понятен вопрос. вы хотите на карте показывать маркер или несколько маркеров?
вот так, если я правельно понял:
Java
1
2
3
4
5
6
@Override
public void onMapReady(GoogleMap map) {
    map.addMarker(new MarkerOptions()
        .position(new LatLng(10, 10))
        .title("Hello world"));
}
а описано это тут:
https://developers.google.com/maps/documentation/android-api/marker

а можно еще так : http://bfy.tw/8Su7
0
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
30.10.2016, 12:23  [ТС] #3
Да, будет составляться карта на которой будут видны все геометки, которые сделали юзеры (друзья юзеров). Саму метку не проблема поставить, а вот насчет показывания всех и есть вопрос
0
shavuz
111 / 117 / 23
Регистрация: 29.01.2014
Сообщений: 584
30.10.2016, 13:00 #4
вопрос как сделать много маркеров на карте?

есть много варриантов, вот один например:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ArrayList<MarkerData> markersArray = new ArrayList<MarkerData>();
 
for(int i = 0 ; i < markersArray.size() ; i++ ) {
 
    createMarker(markersArray.get(i).getLatitude(), markersArray.get(i).getLongitude(), markersArray.get(i).getTitle(), markersArray.get(i).getSnippet(), markersArray.get(i).getIconResID());
}
 
...
 
protected void createMarker(double latitude, double longitude, String title, String snippet, int iconResID) {
 
    return googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(latitude, longitude))
            .anchor(0.5f, 0.5f)
            .title(title)
            .snippet(snippet);
            .icon(BitmapDescriptorFactory.fromResource(iconResID)));
}
Добавлено через 3 минуты
или вопрос как получить геопозицию всех друзей?
1
xaat
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
30.10.2016, 15:30 #5
Цитата Сообщение от shavuz Посмотреть сообщение
или вопрос как получить геопозицию всех друзей?
На сервере где то хранить. Я бы использовал БД в Firebase.
1
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
30.10.2016, 15:38  [ТС] #6
Спасибо, но вопрос был более абстрактный) С кодом разберусь походу дела.


На сервере где то хранить. Я бы использовал БД в Firebase.
А вот например в яндекс.транпорт берется точка по gps в автобусе и она по карте едет. Это постоянно обновление базы происходит?
звучит сложно и нагруженно
0
shavuz
111 / 117 / 23
Регистрация: 29.01.2014
Сообщений: 584
30.10.2016, 15:49 #7
аааа. ну в принципе это делается так. конечно нужен сервер. фаербейс или бэкэндлесс вполне подойдут. нужно сделать два поллинг механизма, один будет отправлять данные о местоположении на сервер, а второй будет проверять есть ли изменения на сервере. разделим на два варрианта
1) показывать друзей на карте, вы открываете аппликацию и видите всех друзей на карте, в тот момент когда вы ее открыли осуществляется запрос на сервер, и сервер возвращает список координат всех друзей. так же, пока аппликация открыта, каждые например 20 секунд нужно послылать повторный запрос(это и есть поллинг)
2) сообщение серверу о текущем местоположении, тут несколько варриантов, можно отслеживать изменения джипиэс, или тоже отсылать текущие координаты какой то промежуток времени, например раз в пол часа.

на сервере нужно всю эту логику прописать тоже, например каждый пользователь должен держать в массив со списком друзей и их координатами, при чем координаты должны обновляться
2
Alex_Fedor
32 / 32 / 5
Регистрация: 20.01.2015
Сообщений: 230
30.10.2016, 15:50 #8
Цитата Сообщение от kirich iz Che Посмотреть сообщение
звучит сложно и нагруженно
Ну почему с некоторой периодичностью в фоновом процессе определяем где находимся и пишем в БД. Можно сделать так чтобы старые записи удалялись. Или скажем с автобусом. Начальная точка, конечная точка и названия улицы. Можно писать новую координату, если от последней удалился на сколько то метров
1
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
30.10.2016, 18:02  [ТС] #9
Ага, теперь становится более понятно. Попробую пока написать чисто для одного устройства (того на которое установлено), там думаю будет вырисовываться.

Спасибо за ответы.
Не закрывайте тему пожалуйства, буду тут отписываться по ходу работы
0
xaat
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
30.10.2016, 19:29 #10
Цитата Сообщение от kirich iz Che Посмотреть сообщение
А вот например в яндекс.транпорт берется точка по gps в автобусе и она по карте едет. Это постоянно обновление базы происходит?
звучит сложно и нагруженно
Берешь два измерения долготы, отнимаешь одно от другого, если модуль разности, больше заданного тобой числа, отправляешь новую позицию.
0
ole_zha
21 / 21 / 4
Регистрация: 11.09.2015
Сообщений: 107
03.11.2016, 07:02 #11
Просто возьмите бд и апдейтите значения пользователя из приложения согласно gps каждую минуту к примеру
id name lat lng
1 User1 45 -12
Так же каждую минуту парсите это значение.
Но не забывайте, что если меток на карте много , лучше использовать группировку.

В яндекс транспорте используется предиктивная аналитика.
Например автобус едет тут
А----О---------------Б
В картах он будет дальше от точки Б, т.к существует много факторов (пинг сервера, соединение телефона с инетом,качество оборудования gps в автобусе,интервал обновления БД) соостветственно данные доходят до вас устаревшие
А--О-----------------Б

Но если например автобус стоит на светофоре
А----О---------------Б
То на картах он будет медленно но двигаться ближе к точке Б
А----------О---------Б

Обусловленно это тем, что приложение берет в расчет эти факторы и подгоняет значения предполагая что автобус "где-то тут"
Так же и с яндекс пробками, они на половину берутся с наблюдений realtime и базой знаний.
Делается это в целях экономии ресурсов скорее всего.
1
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
03.11.2016, 07:26  [ТС] #12
Спасибо за совет.
Думаю в масштабах приложения делаемого одним человеком, делать нейронную сеть для пробок и тд врядли нужно
Точность в пару сотен метров думаю меня устроит
0
ole_zha
21 / 21 / 4
Регистрация: 11.09.2015
Сообщений: 107
03.11.2016, 07:48 #13
У меня похожая затея но только не с gps и не связана с передвижениями) я делаю веб-приложение, если тебе поможет чем нибудь
Google maps api + external link
Там есть ссылки на другие треды, которые я решил, там и кластеризация и определение геоположения и парсинг с бд данных)
1
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
03.11.2016, 07:54  [ТС] #14
Странно что вам никто не ответил не разу в темах
В принципе общение в веб приложении и андроидом очень похоже, покурю ваш код, может чего смогу почерпнуть. Большое спасибо.
з.ы. насколько я сталкивался, кластеризация это уже анализ данных, для чего вы ее используете в своем веб приложении?
0
ole_zha
21 / 21 / 4
Регистрация: 11.09.2015
Сообщений: 107
03.11.2016, 08:07 #15
Marker Clusterer
Вот это очень наглядный пример скорости загрузки от гугла)

В кратце, если приложение имеет большую плотность меток на карте, это очень плохо по ряду причин:
- плохо воспринимается каша, даже не смотря на то, что все метки выстраиваются на карте по z-index'у
- скорость загрузки карты начнет страдать
- для приложений с webview это вообще смертельно)
- впринципе отображение кучи геометок сказывается на производительности как и так и мобилок

Ну а никто не ответил я даже не знаю почему, то ли решил быстро проблему, то ли никто не курит гуглокарты
1
03.11.2016, 08:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2016, 08:07
Привет! Вот еще темы с ответами:

Приложение написано на x64, не могу открыть это же приложение на Win32 - C#
Всем доброго дня или вечера. Помогите пожалуйста, я написал приложение си шарпе платформа виндоус 64 разрядный теперь не могу открыть вот...

консольное приложение (при запуске приложение открывалось на весь экран) - C++
Как сделать, чтобы при запуске приложение открывалось на весь экран?

Как java-приложение может попросить OS запустить внешнее приложение? - Java
Как java-приложение может попросить OS запустить внешнее приложение?

Запустить приложение, и получить результат, который вернуло отработавшее приложение - C++ WinAPI
Всем привет! Народ подскажите апишку(ки) для реализации следующей задачи. Мне нужно проверить соответствие введенного пользователем...


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

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

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