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

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

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Диалог указания координаты на карте - Программирование Android

18.07.2016, 21:27. Просмотров 212. Ответов 10
Метки нет (Все метки)

Гуру, кто-нибудь подобный компонент встречал?

Не хочу с нуля "велосипед" изобретать... Думаю такое много раз писали и даже где-нибудь в опенсорсах лежит...

Надо чтобы юзер указал сам где он находится (если GPS не сработало).

Нажать на кнопку, выскочит диалог, покажет карту Google/Yandex, нажать точку (прозумировав), возможно мини-поиск по названию, и кнопку "Ок" для возврата результата...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Борис Верещагин
60 / 39 / 12
Регистрация: 14.01.2016
Сообщений: 183
Завершенные тесты: 4
18.07.2016, 21:52     Диалог указания координаты на карте #2
Tester64, популярного ничего нет...

Не по теме:

да и было-бы что писать... по-мне такую ерунду лучше самому сделать чем пользоваться чем-то сомнительным

Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
18.07.2016, 22:54  [ТС]     Диалог указания координаты на карте #3
Жаль!
Цитата Сообщение от Борис Верещагин Посмотреть сообщение
по-мне такую ерунду лучше самому сделать чем пользоваться чем-то сомнительным
Почему "сомнительным"? Как раз наоборот. Я могу такое написать часа за 3 (может больше - не работал с картами в андроиде - с нуля надо гуглить). Причем только под один мап-апи. Забью на поиск по имени и на кнопки зума карты. Забью на начальные координаты. Забью на формат диалога и сделаю активити... А как проще было бы скачать с репозитория и введя несколько "левых" параметров просто использовать...

Пишу сложный живой экран, где одна из 20 функций требует координаты для восхода-захода солнца. Нужно ввести координаты. Пробую получить с ГПС, но я не влючаю GPS, а у кого-то его нет. Могу в настройки воткнуть два текстовых поля, но даже я сам на калькуляторе переводил "секунды в дробные минут", взяв их из википедии... Самое разумное - дать кнопку "укажите на карте". И ради этой мелкой, но не самой важной функции я буду тратить сутки! А ведь я могу придумать десятки программ, где можно добавить такой диалог...

Сейчас пишу Лайт-версию(Free, а не Pro). Первую прогу хочу выложить. Поэтому опять "забиваю" - часа 2 готов потратить на поиски и подключение, но не день-два на "красивое", "качественное", "без глюков" и "с нуля" (может еще не раз пригодиться).
Pablito
19.07.2016, 11:13
  #4

Не по теме:

ну как обычно - много пустых слов и минимум действий

Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
19.07.2016, 12:27  [ТС]     Диалог указания координаты на карте #5
Цитата Сообщение от Паблито Посмотреть сообщение
и минимум действий
А какие действия ты хочешь??? Чтобы я выделил сутки-двое на этот диалог(с полными тестами)? Для проекта, где я спешу выложить на плей и забыть/избавиться? Не в этом месяце!!!

Я обьяснил почему иметь такой компонент готовым было бы лучше чем тратить время на написание своего с нуля "под проект".

Не по теме:

А слов много - ибо не жалко! Печатаю быстро ("слепой" метод). Пустых нет - все по делу! КОНЧАЙ НАЕЗЖАТЬ! Не нравиться - не читай!



Я тоже погуглил - тоже не нашел! Пока тему закрываю! Сейчас нет времени писать такое с нуля...
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
19.07.2016, 12:46     Диалог указания координаты на карте #6

Не по теме:

Цитата Сообщение от Tester64 Посмотреть сообщение
Пустых нет - все по делу! КОНЧАЙ НАЕЗЖАТЬ! Не нравиться - не читай!
Поддерживаю.


На мой взгляд, под каждый тип карты пишется своё диалоговое окно, поскольку установка такой позиции отличается в разных картах. Да я думаю, лучше всё равно самому написать, это по ситуации несколько часов отнимет. Сам настроишь, как тебе нужно. Опыта прибавишь.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
19.07.2016, 14:34     Диалог указания координаты на карте #7
создание MapActivity (правой мышкой в проекте) + создание api_key в гугл.консоли + создать 1 маркер, повесить клик листенер на карту и перемещать маркер в новую позицию по клику + создание кнопки "Готово" в которой через setResult вернуть две Double координаты в первую активити
все это занимает час от силы, это считая с наведением порядка, красивый код и все такое

цифру называю не с потолка, делал это лично (час максимум при том, что я работать с картами жуть как не люблю)

выложил бы мануал по шагам в своем стиле, да вижу что уже не нужно, ТС обижен что не помогли, а нехороший грубиян Паблито еще и упрекнул в графоманстве

Цитата Сообщение от CoolMind Посмотреть сообщение
Да я думаю, лучше всё равно самому написать, Сам настроишь, как тебе нужно. Опыта прибавишь.
точно, на это я и намекал
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
19.07.2016, 17:05     Диалог указания координаты на карте #8
Цитата Сообщение от Паблито Посмотреть сообщение
все это занимает час от силы, это считая с наведением порядка, красивый код и все такое
Быстро, я бы день парился, если бы ещё карты удачно подключились.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
19.07.2016, 17:18     Диалог указания координаты на карте #9
я сам не ожидал, потому что последний раз делал это больше года назад
теперь просто делается так
Диалог указания координаты на карте
и ide генерирует активити, разметку под нее, создает пару папок и в них файлы google_maps_api.xml отдельно для дебажной и релизной версии
сразу же на экране откроется файл для дебажной и там в шапке-комментарии будет готовый линк на гугл-консоль, где генерируется api key
всего-то надо скопировать и вставить

ну и если не заморачиваться именно перетаскиванием маркера, а просто по клику его перемещать то код активити до смешного прост
Кликните здесь для просмотра всего текста
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
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
 
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleMap.OnMapClickListener, View.OnClickListener {
 
    private Marker marker;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        findViewById(R.id.fab).setOnClickListener(this);
    }
 
    @Override
    public void onMapReady(GoogleMap map) {
        map.setOnMapClickListener(this);
        LatLng sydney = new LatLng(-34, 151);
        marker = map.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        map.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
 
 
    @Override
    public void onMapClick(LatLng latLng) {
        marker.setPosition(latLng);
    }
 
    @Override
    public void onClick(View view) {
        Intent intent = new Intent();
        intent.putExtra("lat", marker.getPosition().latitude);
        intent.putExtra("lng", marker.getPosition().longitude);
        setResult(666, intent);
        finish();
    }
}

разметка
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.mytestapplication.MapsActivity" />
 
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp"
        android:src="@android:drawable/ic_dialog_map" />
</FrameLayout>
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
19.07.2016, 17:21     Диалог указания координаты на карте #10
Цитата Сообщение от Паблито Посмотреть сообщение
ide генерирует активити, разметку под нее, создает пару папок и в них файлы google_maps_api.xml отдельно для дебажной и релизной версии
сразу же на экране откроется файл для дебажной и там в шапке-комментарии будет готовый линк на гугл-консоль, где генерируется api key
Видать, они чего-то поделали, потому что 2 года назад этого не было. Забавно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2016, 17:45     Диалог указания координаты на карте
Еще ссылки по теме:
Провести перпендикуляр на карте Android
Путь к карте памяти Android
Диалог выбора файла Android
Прозрачный диалог ожидания Android
Диалог с вводом текста Android

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

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
19.07.2016, 17:45  [ТС]     Диалог указания координаты на карте #11
Цитата Сообщение от CoolMind Посмотреть сообщение
они чего-то поделали, потому что 2 года назад этого не было.
Я тоже раньше подобного не встречал...
Yandex
Объявления
19.07.2016, 17:45     Диалог указания координаты на карте
Ответ Создать тему
Опции темы

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