На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Прокладка маршрута с помощью Google Maps API на Android
    Всем привет!

    Мне нужно в Android приложение добавить возможность прокладки маршрута между двумя точками, возможно, включая промежуточные точки (для водителей такси), с оценкой времени на преодоление этого маршрута, используя Google Maps API. Кто-нибудь интересовался, пробовал? К сожалению, поиск в интернете пока ничего не дал, вылезают ссылки на всякие приложения-навигаторы, восхваления новейших достижений гугла и т.д. Дальше просто отметки точек на карте, кастомных оверлеев и т.п. я не добрался. Это вообще возможно?

    Или мне стоит сразу ринуться на какой-нибудь другой, специализированный форум?

    Заранее всем спасибо!
        Цитата mrco @
        Есть Google Directions API

        Но обращаем внимание на limitations ;)
          Карты свои используете или гуглмаповские? Если гуглмаповские, то наверняка там проблем не возникнет. А вот со своими - это строить дорожный граф и каким-нибудь алгоритмом его обходить.
          Совсем недавно столкнулся с тем, что почти никакие гео-API от гугла юзать отдельно от карт гугл не разрешает.
            Цитата mrco @
            Есть Google Directions API

            Гм, странно, почему этот сервис отдельно от Google Maps API. Хорошо, спасибо, буду знать.

            Цитата Хрен @
            Карты свои используете или гуглмаповские? Если гуглмаповские, то наверняка там проблем не возникнет. А вот со своими - это строить дорожный граф и каким-нибудь алгоритмом его обходить.

            Зачем же свои? Делать нам больше нечего:)
              Цитата Британский учёный @
              Но обращаем внимание на limitations ;)

              2500 запросов в сутки можно. Но я не понял, это с конкретным ключом API, или с конкретного девайса?
                Цитата Homez @
                Делать нам больше нечего

                Ну не скажи. Большинство навигаторов юзают свои, ибо это позволяет не привязываться к этим вашим интернетам ;)

                Цитата Homez @
                2500 запросов в сутки можно. Но я не понял, это с конкретным ключом API, или с конкретного девайса?

                С конкретным ключом. Т.е. сжираться это у тебя будет за день-два - и тебе придётся постоянно распространять новый ключ =)
                Как вариант - заключить договор с гуглом
                  Цитата Хрен @
                  Ну не скажи. Большинство навигаторов юзают свои, ибо это позволяет не привязываться к этим вашим интернетам ;)

                  Не такой у нас масштаб, чтобы делать свои карты, мы ж не софтверная фирма, а скромный таксопарк:)

                  Цитата Хрен @
                  С конкретным ключом. Т.е. сжираться это у тебя будет за день-два - и тебе придётся постоянно распространять новый ключ =)

                  Сжираться за день - согласен. А за два как может сжираться, когда, по идее, каждые сутки на гугле должно срабатывать обнуление счетчкика вызовов?

                  Еще не очень понятно, как ведутся счетчики количеств использования сервиса. Насколько я понял по документации, в этот Directions API не надо передавать свой ключ Google Maps API. Как же считается тогда?

                  Добавлено
                  Цитата Хрен @
                  С конкретным ключом. Т.е. сжираться это у тебя будет за день-два - и тебе придётся постоянно распространять новый ключ =)

                  Ключ Google Maps API привязан к цифровой подписи (ключу) конкретной копии приложения. Поэтому вопрос можно решить, просто каждую копию снабжая своей подписью. Можно ли такое сделать? Как это можно автоматизировать? Пока я работал только с debugkey...
                  Сообщение отредактировано: Homez -
                    Цитата Homez @
                    Можно ли такое сделать?

                    При помощи ant, например. Там можно автоматизировать генерацию ключей для пакета - просто для каждой копии пакета генеришь новый ключ.
                    Синтаксис там довольно простой, я за вечер освоил. Да и в любом случае, как андроид девелоперу, он тебе будет полезен - часто нужно делать возможность консольной сборки (без этих ваших эклипсов) =)
                      Хрен, а где-нибудь есть туториалы по консольной сборке проектов Android? А то Eclipse меня уже начинает раздражать. javaw жрет до 400 метров оперативки. А сейчас уже несколько дней у меня выполняется одна программулина, сбросить жаль, хочу дождаться результата:) В итоге из-за этого Eclipse совсем не живой, скорость работы в нем замедлилась в разы. В Notepad++ такого ведь не будет:)

                      Вот java-приложения, без андроидов, я ведь всю жизнь в текстовом редакторе писал и компилировал и запускал из командной строки. И не чуть от этого не проигрывал.

                      Я тут переключился на Яндекс-Карты Mapkit для Android пока. Может, кто-то с ними работал? В интернете очень мало информации по разработке с ними, на Хабрахабре, например, только очень поверхностное прикосновение. Вместе с тем, не у меня уже первого, возникают проблемы по подключению этого кита в проект. Пример мне собрать удалось, а когда попытался подключить библиотеку в свой рабочий проект, при открытии формы с картой все время мне в LogCat пишет, типа error inflating class MapView. Как это разрулить?

                      Добавлено
                      Гм, кажется, понял мою ошибку. Я jar-файл с библиотекой подключал из внешной папки, куда либу изначально распаковал, хотя и сделал копию внутри папки проекта. А в примере я подключал "внутренний" jar.

                      Добавлено
                      Гм, теперь критических ошибок не скочет, но и карта не показывается. Ну правда, я еще код не настроил. И да, пока виснет просто... Но уже хоть что-то другое.
                        Цитата
                        а где-нибудь есть туториалы по консольной сборке проектов Android? А то Eclipse меня уже начинает раздражать. javaw жрет до 400 метров оперативки. А сейчас уже несколько дней у меня выполняется одна программулина, сбросить жаль, хочу дождаться результата В итоге из-за этого Eclipse совсем не живой, скорость работы в нем замедлилась в разы. В Notepad++ такого ведь не будет

                        Ну, во-первых, под андроид очень хорошо идет Idea. Во-вторых, проект для андроида собирается из командной строки при помощи ANT-a. Вот тут и тут неплохо описано
                        Сообщение отредактировано: Hsilgos -
                          Спасибо, попробую Ant.
                            Цитата Homez @
                            В Notepad++ такого ведь не будет

                            А ещё там не будет автодополнения, автоматической проверки на ошибки и прочих вкусностей. Его можно заюзать разве что для мелких правок.
                            Действительно, попробуй Idea - она в отличие от эклипса написана не на яве, так что работает пошустрее. Единственное что - её официально не поддерживает гугл, так что всяких плагинов для андроид-разработки с ней придётся ждать дольше.
                            Кроме Ant'а можешь ещё глянуть Maven. Но Ant попроще. Не знаю, правда, лучше ли, т.к. с мавеном имел дело весьма поверхностно.
                              Цитата Хрен @
                              А ещё там не будет автодополнения, автоматической проверки на ошибки и прочих вкусностей.

                              Ну это понятно. Например, в Eclipse мне понравилась фича, когда какой-то класс разрешиться не может (забыл, например, сделать import, да или просто не помнишь, какой это пакет), то предлагает на выбор один или несколько пакетов, где этот класс есть, несколько раз мне это помогало.

                              Ant я уже поставил, должен работать. Но туториалы, что Hsilgos подсказал, буду уже завтра изучать и пробовать. Может и пойдет.

                              Когда я программирую просто Java-приложение в Notepad++, то мне иногда, конечно, автодополнения не хватает и подсветки ошибок, нужно четко выверять все идентификаторы, иначе просто сыпется куча глупых ошибок. Но пока на Java я писал только небольшие задачки - у меня на счету только построение суммы гармоник ряда Фурье по кусочно-линейной функции, задаваемой кликами на экране, да несколько десятков решенных задач с Project Euler, до больших проектов не дошло.

                              Хотя вот, сейчас же делаю довольно объемную работу на асме, получил в наследство проект на много сотен строк кода. Набираю в том же Notepad++, и все пока шикарно (не с точки зрения качества кода моего, это я уж не буду судить, а с точки зрения того, что пока не жалуюсь на какие-то неудобства).
                                Цитата Homez @
                                в Eclipse мне понравилась фича

                                Да, в Idea этого не хватает, кстати.

                                Я одно время тоже полностью ось написал на mc. Но это было по молодости и глупости =)
                                  Цитата Хрен @
                                  Я одно время тоже полностью ось написал на mc.

                                  Что ты имел в виду под осью? И что такое mc?:)
                                    Цитата Homez @
                                    Что ты имел в виду под осью?

                                    Операционная система. Простенькая, конечно.

                                    Цитата Homez @
                                    И что такое mc?

                                    Midnight commander - Far под никсы =)
                                      Туториалы, предложенные Hsilgos, немного устаревшие, пару лет ведь прошло, Ant успел измениться. Пришлось некоторые вещи догонять отдельно. Но вот только что получилось собрать и установить с его помощью хелло-ворлд-приложение, которое создается утилиткой android в качестве заделки для проекта. Конечно, приходится применять как два дополнительных шага запуск эмулятора и запуск собственно свежеустановленного приложения, но это не составляет большой проблемы, тем более первое и так приходилось часто делать отдельно, когда работал в Eclipse (почему-то когда я задавал partition size побольше в свойствах эмулятора в AVD, запущенный эмулятор подвисал, приходилось запускать его из командной строки, задавая эту опцию в ней).

                                      Завтра попробую собрать с помощью ant уже свою разработку.
                                        Так, товарищи, сделал сборку debug своего рабочего приложения с помощью ant. Все формы работают, кроме формы с Яндекс-картой - выскакивает сообщение об ошибке, активити закрывается. А как узнать, в чем дело, как отлаживать вне эклипса?
                                          LogCat андроидовский смотреть надо. Как это делать без эклипса, не знаю. Но наверно как-то можно =)
                                            Хрен, твой ответ, конечно, мне в большую помощь:D

                                            Ну может, я и не справедлив к эклипсу, просто не получается разобраться с этой проблемой в нем - с этим error inflating class. Почему-то добавление jar яндерс-мэпкита в проект на примере отлично сработало, а в мой личный проект - вот такая ошибка. Но тут в интернете наткнулся на пару страничек и даже на одно видео, где предлагалось создать отдельно Library Project с этим jar, а в основном проекте просто добавить на него ссылку. Но проследовать всю дорогу по видео не удалось - при создании нового проекта на основе уже существующего кода Eclipse требует файл манифеста, а там его и в помине нет, а свой сочинить я особо не умею, не навострился. Хотя может, я что не так углядел, может, там просто создается новый проект, а потом в него просто добавляется библиотека? Сейчас пересмотрю видео обязательно.

                                            Добавлено
                                            Посмотрел, нет, проект библиотеки создается на основе существующих на диске сорцов. Странно.

                                            Добавлено
                                            Набрал в командной строке "adb logcat". Ну чем не LogCat?:) Значит, есть возможность захватывать вывод в LogCat при запуске конкретного приложения, буду исследовать этот вопрос. Но если кто подскажет, буду признателен.

                                            Добавлено
                                            а, понял, adb logcat просто висит и ловит весь вывод в LogCat для устройства. Так что сейчас попробую поймать, что у меня там не так.

                                            Добавлено
                                            Удалось поймать, то же самое:

                                            E/AndroidRuntime( 196): java.lang.RuntimeException: Unable to start activity Co
                                            mponentInfo{ru.robocab.driverapp/ru.robocab.driverapp.YandexMapActivity}: androi
                                            d.view.InflateException: Binary XML file line #6: Error inflating class ru.yande
                                            x.yandexmapkit.MapView

                                            Но я в этой консольной сборке и не предпринимал никаких действий для подключения библиотеки, просто скопировал jar и пару so, щас вкурю, что надо сделать.
                                              Отбой, вопрос решен! Оказалось, что нужно более тщательно вчитываться в LogCat, там есть такие замечательные строки как caused by. Вот по одному такому caused by и определил, что нужно добавить в манифест строку

                                              <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

                                              Мэпкит требует это разрешение, в манифесте примера оно есть! Чувствую себя идиотом :wall:
                                                Цитата Homez @
                                                Чувствую себя идиотом

                                                Все через это прошли ;)
                                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                0 пользователей:


                                                Рейтинг@Mail.ru
                                                [ Script execution time: 0,0493 ]   [ 15 queries used ]   [ Generated: 27.04.24, 12:37 GMT ]