18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585

Отобразить местоположение на карте по координатам

25.03.2015, 17:38. Показов 6396. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Взял из книжки такой код для отображения местоположения на карте по заданным координатам (например, взял координаты Москвы):
Java
1
2
3
4
                    String geoURI = String.format("geo:%f,%f?z=10", 55.75, 37.62); // использовать другой формат запроса?
                    Uri geo = Uri.parse(geoURI);
                    Intent geoMap = new Intent(Intent.ACTION_VIEW, geo);
                    startActivity(geoMap);
Сначала андроид (как и подобает) предлагает выбрать какую программу использовать (в моем случае это Гугл карты и Яндекс карты). Но местоположение отображает где-то на краю вселенной в океане (при этом метку с координатами подписывает правильно).

В чем может быть дело? Как сделать, чтобы местоположение отображалось правильно?
(У меня есть подозрение, что нужно как-то по другому отправлять запрос (в другом формате))

Добавлено через 8 минут
Пока решил пока проблему так:
Java
1
2
3
4
5
6
                    String geoURI = String.format("geo:%f;%f?z=10", 55.75, 37.62);
                    geoURI = geoURI.replaceAll(",", ".");
                    geoURI = geoURI.replaceAll(";", ",");
                    Uri geo = Uri.parse(geoURI);
                    Intent geoMap = new Intent(Intent.ACTION_VIEW, geo);
                    startActivity(geoMap);
Т.е. проблема в том, что является разделителем дробной части числа.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2015, 17:38
Ответы с готовыми решениями:

Расстановка меток на Я.Карте по координатам
Есть база данных в ней хранятся координаты точек. Необходимо поставить метки на карте по этим координатам. Как все это организовать?

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

Нарисовать граф так что бы вершины соответствовали координатам на карте
Добрый день:) Пытаюсь сделать следующую программу: Вершины графа - координаторы объектов на карте (координаты определяю по...

13
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
04.04.2015, 20:00
znseday, присоединяюсь к вопросу, та же проблема...

есть код:
Java
1
2
3
4
5
String geoURI = String.format("geo:%f;%f", Latitude, Longtitude);
                geoURI = geoURI.replaceAll(";", ",");
                Uri geo = Uri.parse(geoURI);
                Intent geoMap = new Intent(Intent.ACTION_VIEW, geo);
                startActivity(geoMap);
при таком раскладе открывает карту и показывает произвольный район, а нужна же точка координат???

в книжке есть такой рабочий пример:
Java
1
2
3
4
5
6
7
8
9
 public void onClick(View v) {
            if (currentLocation != null) {
            Uri uri = Uri.parse(String.format("geo:%f,%f", 
                    currentLocation.getLatitude(), 
                    currentLocation.getLongitude()));
            Intent geoMap = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(geoMap);
            }
        }
думаю что этот пример где-то рядом, но задача в том чтобы в getLongtitude() и getLatitude() передать мои значения долготы и широты, или может кто в курсе как это делается?
0
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
04.04.2015, 21:34  [ТС]
disx, вероятно, вы забыли поменять запятую на точку.
Java
1
geoURI = geoURI.replaceAll(",", ".");
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
04.04.2015, 22:46
znseday, нет, это я сделал в другом классе, т.е. Longtitudе и Latitude уже приведены к виду 34.55748
0
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
04.04.2015, 23:18  [ТС]
disx, тогда я вас не понимаю, потому что в том коде, что вы приводите нет ни замены запятой на точку, ни вызова каких либо других функций/методов, которые могли бы эту запятую менять на точку.
0
13 / 13 / 5
Регистрация: 29.06.2011
Сообщений: 85
04.04.2015, 23:20
Попробуйте, так работает
Java
1
2
3
4
String geoURI = String.format(Locale.ENGLISH, "geo:%f,%f?z=10", 55.75, 37.62); // использовать другой формат запроса?
        Uri geo = Uri.parse(geoURI);
        Intent geoMap = new Intent(Intent.ACTION_VIEW).setData(geo);
        startActivity(geoMap);
0
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
04.04.2015, 23:21  [ТС]
попробуйте все же добавить ту строчку, о которой я говорю, т.е. ваш полный код с учетом моей поправки должен выглядеть так:
Java
1
2
3
4
5
6
tring geoURI = String.format("geo:%f;%f", Latitude, Longtitude);
                geoURI = geoURI.replaceAll(",", ".");
                geoURI = geoURI.replaceAll(";", ",");
                Uri geo = Uri.parse(geoURI);
                Intent geoMap = new Intent(Intent.ACTION_VIEW, geo);
                startActivity(geoMap);
Добавлено через 1 минуту
Плутон, в РФ
Java
1
String.format("geo:%f,%f?z=10", 55.75, 37.62);
выдаст запятые вместо точек.
0
13 / 13 / 5
Регистрация: 29.06.2011
Сообщений: 85
04.04.2015, 23:24
ваш код - не лучший вариант, лучше
Java
1
String geoURI = String.format(Locale.ENGLISH, "geo:%f,%f?z=10", 55.75, 37.62);
0
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
04.04.2015, 23:26  [ТС]
Плутон, да, или так, чтобы не менять запятые вручную)
0
13 / 13 / 5
Регистрация: 29.06.2011
Сообщений: 85
04.04.2015, 23:27
исправил свой ответ сверху
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
06.04.2015, 13:40
znseday, Плутон, ребят чета не работает как ни пробовал, опишу поподробнее:

в одном из классов получаю из строки, координаты вида: "Название, 53,881700 | 27,592914"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mes = messages.getMessageBody();
            mes=mes.replaceAll(",", ".");//делаю это действие здесь потому что если это не сделать, не //парсится в Double, поэтому в основном классе этого и не делаю.
                 String div="|";
                 int divider = mes.indexOf(div);
                 String Lo = mes.substring(10, divider-1);
                 String La = mes.substring(divider+2);
                 
                Longtitude=Double.parseDouble(Lo);
                Latitude=Double.parseDouble(La);
             
                String ms = String.valueOf(Longtitude);
                String ms1 = String.valueOf(Latitude);
                Toast.makeText(context, ms+" "+ms1,
                 Toast.LENGTH_LONG).show();
в основном классе сейчас так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
Longtitude=MessageReceiver.Longtitude;
        Latitude=MessageReceiver.Latitude;
        btnmap.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                
                String geoURI = String.format("geo:%f,%f?z=10", Latitude, Longtitude);
                geoURI = geoURI.replaceAll(";", ",");
                Uri geo = Uri.parse(geoURI);
                Intent geoMap = new Intent(Intent.ACTION_VIEW, geo);
                startActivity(geoMap);
и при таком раскладе все время отправляет в Атлантический океан (хотя указаны координаты Минска),....

но если вписать вручную координаты вместо моих Latitude и Longtitude то оно открывает отображая город вцелом где есть эта координата, а не увеличивает масштаб как делается при нажатии на карте кнопки "мое местоположение" а нужно именно так.., отсюда вопросы:

что не так в моих переменных?

и как сделать чтоб масштабировало точку на карте как у гугла "найти местоположение"?

Добавлено через 1 час 2 минуты
фсе, разобрался с ошибкой, работает так:
Java
1
2
3
String geoUri = String.format("geo:%s,%s?z=15", Double.toString(Latitude), Double.toString(Longtitude));
                Intent geoMap = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUri));
                startActivity(geoMap);
масштабирование выставляется по желанию от 2-х до 23-х.


но опять же как сделать чтоб отмечало эту тучку на карте а не просто показывало кусок карты где она находится, пожалуй это последний вопрос который меня терзает на эту тему ?

Добавлено через 2 часа 21 минуту
кста, на Яндекс.карты ставит красную отметку самой точки, а почему у гугла нет, может еще есть какой параметр для этого?
0
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
06.04.2015, 19:11  [ТС]
disx,
Java
1
String geoURI = String.format(Locale.ENGLISH, "geo:%f,%f?z=10", Double.toString(Latitude), Double.toString(Longtitude));
1
13 / 13 / 5
Регистрация: 29.06.2011
Сообщений: 85
06.04.2015, 19:18
А с какой целью вы используете google maps в приложение. Для маркеров, наверное, лучше использовать google maps api for android http://developer.android.com/g... /maps.html
1
0 / 0 / 0
Регистрация: 06.07.2017
Сообщений: 1
06.07.2017, 13:49
наткнулся на эту тему случайно.
мне кажется что вы перед координатами должны указать префикс q=
и будет отметка на карте в картах гугл
ну или ?q=
"geo:%f,%f?z=10&q=" и всё).
но наверно за это время вы и сами догадались. сори.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2017, 13:49
Помогаю со студенческими работами здесь

Как отобразить всех пользователей на карте?
Есть задача разместить всех пользователей(давших разрешение) на карте. Карту могут видеть и другие пользователи. Как это можно...

GMap Net Отобразить маршрут точки на карте
Здравствуйте! Помогите, кто знает, решить задачку. Есть две формы Form1 - Форма с GmapControl1 - API Gmap net Form2 - Форма для ввода...

Отобразить кривую на форме по координатам из файла
Текстовый файл имеет пары координат графика (создать для монотонно спадающей кривой: расстояние-температура, 6-7 точек). Отобразить кривую...

Отобразить на карте количество клиентов по списку город-количество клиентов
У меня есть список количества клиентов компании, разбитый по городам. Например: Москва: 100, Петербург: 250 клиентов. Цель такая - на...

Местоположение
Добрый вечер. Нужно определить местоположение. Так как у меня эмулятор, который подключен к интернету, я пытаюсь получить местоположение...


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

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

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru