Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Android Google Map - рисование маршрута между двумя точками - JournalDev

  1. Android Google Maps Рисование Путь Структура проекта
  2. Android Google Maps Рисование кода маршрута
  3. О Анупам Чуг

В этом уроке мы создадим приложение для Android, которое нарисует возможный маршрут карты Google между двумя точками. Мы будем использовать API Карт Google в нашем приложении.

Создайте новый ключ API Google Map из консоли API, выполнив действия, описанные в этот руководство.

Создайте новый проект Android Studio и выберите шаблон в качестве Google Maps Activity . Добавьте ключ API в файл google_maps_api.xml, который находится в папке debug-> res-> values

Так должно выглядеть приложение, если вы используете последнюю версию Android Studio.
Так должно выглядеть приложение, если вы используете последнюю версию Android Studio

Android Google Maps Рисование Путь Структура проекта

Android Google Maps Рисование Путь Структура проекта

Файл DirectionsJSONParser.java - это файл, который анализирует местоположения и возвращает маршрут. Затем вызывается метод decodePoly (), чтобы получить данные ломаной линии, которые впоследствии отображаются на карте.

Android Google Maps Рисование кода маршрута

Код MainActivity.java приведен ниже.


копия

открытый класс MapsActivity расширяет FragmentActivity реализует OnMapReadyCallback {private GoogleMap mMap; ArrayList markerPoints = new ArrayList (); @Override protected void onCreate (Bundle saveInstanceState) {super.onCreate (сохраненныйInstanceState); setContentView (R.layout.activity_maps); // Получаем SupportMapFragment и получаем уведомление, когда карта готова к использованию. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager () .findFragmentById (R.id.map); mapFragment.getMapAsync (это); } @Override public void onMapReady (GoogleMap googleMap) {mMap = googleMap; LatLng sydney = новый LatLng (-34, 151); //mMap.addMarker(new MarkerOptions (). position (sydney) .title ("Маркер в Сиднее")); mMap.moveCamera (CameraUpdateFactory.newLatLngZoom (Сидней, 16)); mMap.setOnMapClickListener (new GoogleMap.OnMapClickListener () {@Override public void onMapClick (LatLng latLng) {if (markerPoints.size ()> 1) {markerPoints.clear (); mMap.clear ();} // Добавление нового элемента to ArrayList markerPoints.add (latLng); // Создание MarkerOptions MarkerOptions options = = MarkerOptions (); // Установка позиции маркера options.position (latLng); if (markerPoints.size () == 1) {options .icon (BitmapDescriptorFactory.defaultMarker (BitmapDescriptorFactory.HUE_GREEN));} else if (markerPoints.size () == 2) {options.icon (BitmapDescriptorFactory.defaultMarker (BitmapDescriptorFactory.HUE_RED) в маркер); Сопоставление Android API V2 mMap.addMarker (options); // Проверяет, захвачены ли начальные и конечные местоположения, если (markerPoints.size ()> = 2) {LatLng origin = (LatLng) markerPoints.get (0); LatLng dest = (LatLng) markerPoints.get (1); // Получение URL-адреса для API Google Directions String url = getDirectionsUrl (origin, dest); DownloadTask downloadTask = ne w DownloadTask (); // Начало загрузки данных json из API Google Directions downloadTask.execute (url); }}}); } закрытый класс DownloadTask расширяет AsyncTask {@Override protected String doInBackground (String ... url) {String data = ""; try {data = downloadUrl (url [0]); } catch (Exception e) {Log.d («Фоновая задача», e.toString ()); } вернуть данные; } @Override protected void onPostExecute (String result) {super.onPostExecute (result); ParserTask parserTask = новый ParserTask (); parserTask.execute (результат); }} закрытый класс ParserTask расширяет AsyncTask <String, Integer, List <List <HashMap >>> {// Анализ данных в потоке, не являющемся пользовательским интерфейсом @Override protected List <List <HashMap >> doInBackground (String ... jsonData) { JSONObject jObject; List <List <HashMap >> router = null; try {jObject = new JSONObject (jsonData [0]); DirectionsJSONParser parser = new DirectionsJSONParser (); маршруты = parser.parse (jObject); } catch (Exception e) {e.printStackTrace (); } обратные маршруты; } @Override protected void onPostExecute (List <List <HashMap >> result) {ArrayList points = null; PolylineOptions lineOptions = null; MarkerOptions markerOptions = new MarkerOptions (); for (int i = 0; i <result.size (); i ++) {points = new ArrayList (); lineOptions = new PolylineOptions (); List <HashMap> path = result.get (i); for (int j = 0; j <path.size (); j ++) {HashMap point = path.get (j); double lat = Double.parseDouble (point.get ("lat")); double lng = Double.parseDouble (point.get ("lng")); LatLng position = new LatLng (lat, lng); points.add (положение); } lineOptions.addAll (points); lineOptions.width (12); lineOptions.color (Color.RED); lineOptions.geodesic (истина); } // Рисование полилинии на карте Google для i-го маршрута mMap.addPolyline (lineOptions); }} private String getDirectionsUrl (LatLng origin, LatLng dest) {// Источник маршрута String str_origin = "origin =" + origin.latitude + "," + origin.longitude; // Пункт назначения маршрута String str_dest = "destination =" + dest.latitude + "," + dest.longitude; // Датчик включен String sensor = "sensor = false"; String mode = "режим = вождение"; // Построение параметров для веб-сервиса String parameters = str_origin + "&" + str_dest + "&" + sensor + "&" + mode; // Формат вывода String output = "json"; // Создание URL-адреса веб-службы String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + параметры; возврат URL; } private String downloadUrl (String strUrl) создает IOException {String data = ""; InputStream iStream = null; HttpURLConnection urlConnection = null; try {URL url = новый URL (strUrl); urlConnection = (HttpURLConnection) url.openConnection (); urlConnection.connect (); iStream = urlConnection.getInputStream (); BufferedReader br = новый BufferedReader (новый InputStreamReader (iStream)); StringBuffer sb = new StringBuffer (); Строка line = ""; while ((line = br.readLine ())! = null) {sb.append (line); } data = sb.toString (); br.close (); } catch (Exception e) {Log.d ("Exception", e.toString ()); } finally {iStream.close (); urlConnection.disconnect (); } вернуть данные; }}

Мы вызвали onMapClickListener для объекта карты Google. Он используется для установки маркера на выбранном месте и сохранения этого местоположения в ArrayList. ArrayList используется только для хранения маркеров источника и назначения.
GetDirectionsUrl () называется URL-адресом API-интерфейса Directions с выходными данными и параметрами, как показано ниже.

"https://maps.googleapis.com/maps/api/directions/" + output + "?" + параметры;

Выходная переменная содержит строку «json», а строка параметра создается как:
Параметры строки = str_origin + режим "&" + str_dest + "&" + sensor + "&" +;

Мы установили режим = вождение в текущем приложении.
Другие виды транспорта:

  • вождение (по умолчанию)
  • ходьба
  • езда на велосипеде
  • транзит

Выходные данные приложения приведены ниже:

Это положит конец этому уроку. Вы можете скачать окончательный проект по ссылке ниже, добавить свой собственный ключ API Google Map.

Вы можете скачать окончательный проект по ссылке ниже, добавить свой собственный ключ API Google Map

О Анупам Чуг

Он любит изучать новые вещи в Android и iOS. Стреляй в него запросы.

Похожие

Как запустить Linux на Android
... Android-планшетами и смартфонами. Вы можете конвертировать их в виртуальные машины, работающие на платформах. В Google Play Store и sourceforge.net есть приложение под названием Limbo PC Emulator. В основном это эмулятор QEMU, разработанный для Android. Его можно бесплатно загрузить и использовать как в коммерческих, так и в некоммерческих целях. прерогативы: Android телефон / планшет Limbo PC Emulator DSL Linux OS
Google запускает новый канал Discover
Google недавно объявила о редизайне и переименовании своего фида Google в Google Discover. Будет новый макет карт, тематических страниц, новые элементы управления, значок звезды и темный режим. Внедрен новый канал Discover. Сначала появился Google Now. У Google Now была актуальная информация для каждого пользователя, такая как погода, новости или даже путь на работу / домой. Google Now был заменен на канал Google. Это показывает для вас соответствующие заголовки, которые разделены
Что такое Google One и как работает Google Диск?
Google снизил стоимость Google Диска и обещает добавить действительно полезные функции в онлайн-хранилище. Драйв существует уже много лет, но с момента запуска практически не изменился; он позволяет загружать файлы, создавать файлы, обмениваться файлами и т. д. Однако Google недавно изменил тарифные планы службы, предоставив им свой собственный бренд (Google One), и объединяет в себе некоторые полезные функции, такие как поддержка экспертов в реальном времени и абонентские льготы. Вот
Различия между сетью в Dreamweaver и сайтом в Wordpress.
В этой статье я намерен прояснить
Как использовать Android без Google: все, что вам нужно знать
Реклама За последние несколько лет я сильно изменил способ использования телефона. Я решил использовать Android без Google. Могу ли я использовать Android без учетной записи Google? Как оказалось, отказ от Google возможен, и опыт не так плох, как вы думаете. Это взгляд на то, что я все еще могу сделать на Android, не полагаясь ни на какие сервисы Google, включая Сервисы Google Play, и от чего мне пришлось отказаться. Во-первых, зачем использовать
Smart Display UI от Google - взгляд на голосо-ориентированную эволюцию Android в Fuchsia
... Android и Echo Show являются элементарными визуальными представлениями наших запросов, Smart Display не просто позволяет увидеть, о чем думает Google Assistant, - он расширяет и расширяет возможности Assistant благодаря интуитивному сочетанию сенсорных функций и голос. Умный пользовательский интерфейс Google сочетает в себе элегантность Material Design с мастерством работы с Android и умами Android Things в операционной системе, которая напоминает будущее. И это очень хорошо
Как перенести закладки с iPhone на Android
Закладки браузера позволяют нам сохранять наши любимые веб-ссылки для последующего доступа. Если вы рассматриваете Интернет как расширенную цифровую книгу, веб-закладки работают как реальные закладки, позволяя нам отмечать место в Интернете, к которому мы собираемся вернуться позже. Другие браузерные программы
Любой, кто хорошо меня знает, знает, что я люблю монополию. Я также довольно безжалостный бизнесмен, ког...
Любой, кто хорошо меня знает, знает, что я люблю монополию. Я также довольно безжалостный бизнесмен, когда играю, с небольшим сочувствием к моим коллегам-игрокам. Поэтому, когда я услышал, что новая версия
Стратегия WebView для разработки под iOS и Android
ЧАСТЬ 1 ВКЛЮЧАЕТ: Соревнование Разработка для Android и iPhone (iOS) - разные звери. Например, если вы создаете приложение для Android, вы должны переписать его как порт для iPhone. Вся эта тяжелая работа х2. Это не идеально, но мы делаем то, что должны, чтобы обойти ограничения,
Установка Puppet Master и агента в RHEL / CentOS 7/6/5
С тех пор, как появились компьютер и компьютерная техника, основное внимание уделялось автоматизации задачи на определенном уровне. Автоматизация задачи относится к выполнению задачи в основном с самим собой с минимальным вмешательством человека или без него. В большинстве областей машиностроения, будь то сетевое взаимодействие, авиация и т. Д., Автоматизация работ в той или иной форме. Задача Automation направлена ​​на сохранение силы человека, затрат, времени, энергии и выполнение задачи
Лучший Android-антивирус? 13 лучших инструментов
... Android, по мнению AV-TEST Март 2019 оценки из 19 приложений безопасности Android. (Институт AV-TEST является независимым немецким поставщиком услуг в области ИТ-безопасности и антивирусных исследований.) AV-TEST оценивает каждый инструмент по трем областям: защита (максимум шесть баллов), удобство использования (максимум шесть баллов) и функции (максимум одна точка). Восемь из 13 перечисленных ниже антивирусных программ

Комментарии

В чем разница между этими двумя машинами за пределами экрана?
В чем разница между этими двумя машинами за пределами экрана? Новый ноутбук стоит доплаты, или лучше приобрести более старую модель? В поисках ответов на эти вопросы я достиг Kiano Elegance 13.3 360 в Minecraft Edition. Технические характеристики Kiano Elegance 13,3 360 Процессор Intel Celeron N3350 (2 ядра, поколение Apollo Lake); Intel HD Graphics; 4 ГБ оперативной памяти DDR3 800 МГц; Диск eMMC 64 ГБ; IPS 13,3 "экран, глянцевая
Является ли Android действительно открытым исходным кодом?
Является ли Android действительно открытым исходным кодом? И имеет ли это значение? Является ли Android действительно открытым исходным кодом? И имеет ли это значение? Здесь мы исследуем, является ли Android действительно открытым исходным кодом. Ведь он основан на Linux! Прочитайте больше , но большинство программного обеспечения,
Но как вы можете протестировать свою систему во время разработки и избежать проблем при работе и переключении между несколькими устройствами?
Но как вы можете протестировать свою систему во время разработки и избежать проблем при работе и переключении между несколькими устройствами? К счастью, все современные браузеры предлагают инструменты мобильной эмуляции, и один из лучших можно найти в Chrome. Это может помочь выявить ранние проблемы, не выходя из комфорта вашего ПК и среды разработки. Запустите Chrome, перейдите на веб-страницу, которую вы хотите протестировать, и откройте Инструменты разработчика
Часто ли вы путаетесь между тем, какие атрибуты выбора и атрибуты параметров можно выбрать для данной формы?
Часто ли вы путаетесь между тем, какие атрибуты выбора и атрибуты параметров можно выбрать для данной формы? Не беспокойся Ты не одинок. Каждый раз, когда вы испытываете затруднения с использованием правильного тега или сталкиваетесь с какими-либо синтаксическими проблемами, просто обратитесь к руководству ниже
Но встреча с более чем двумя участниками?
Но встреча с более чем двумя участниками? Уже тяжелее. У меня было два опыта: если вы хорошо просматриваете свои встречи, вы можете быстрее ответить на запрос о встрече. И вместо того, чтобы отправлять бесконечные электронные письма туда и обратно, вы можете использовать хорошо организованный онлайн-инструмент, чтобы найти встречу. Сегодня я покажу вам, как легко найти встречу со своими коллегами - для встречи, поездки или на следующий вечер для сотрудников.
Что может сделать Google Drive?
Что может сделать Google Drive? Вот основные функции Google Диска для потребителей: Хранение файлов: на диске появляется 15 ГБ бесплатного онлайн-хранилища. Вы можете хранить широкий спектр типов файлов и папок - даже файлы Office. Создание файлов: вы можете создавать документы и файлы на лету с помощью встроенного Документы ,
Что такое поддельная техническая поддержка и почему не стоит доверять всему, что вы видите в Google?
Что такое поддельная техническая поддержка и почему не стоит доверять всему, что вы видите в Google? Что такое поддельная техническая поддержка и почему не стоит доверять всему, что вы видите в Google? Вы сидите дома, занимаясь своими делами. Внезапно зазвонил телефон. Вы берете, и это Microsoft (или Norton, или Dell, или ...). В частности, это инженер поддержки, и он обеспокоен - обеспокоен ...
Я использовал этот пример в своем обзоре, но я повторю его здесь: Когда вы спросите: «Привет, Google, что такое аллозавр?
Я использовал этот пример в своем обзоре, но я повторю его здесь: Когда вы спросите: «Привет, Google, что такое аллозавр?» он скажет вам, что это динозавр, который жил 150 миллионов лет назад, как на вашем телефоне. Умный помощник продвигает его дальше от этой точки, показывая картину, раскрывая дополнительные факты, такие как расчетная скорость движения динозавра, и предлагает ряд ссылок для более глубокого исследования. Все это делается на лету, получая информацию из Википедии, фотографии из
Вы когда-нибудь пытались перенести свои закладки с iPhone на Android?
Вы когда-нибудь пытались перенести свои закладки с iPhone на Android? Вы использовали какой-либо из методов, описанных здесь? Если нет, какой метод вы использовали? Поделитесь своим опытом с нами в поле для комментариев ниже. (с участием Элмер Монтехо )

Com/maps/api/directions/" + output + "?
Com/maps/api/directions/" + output + "?
Могу ли я использовать Android без учетной записи Google?
В чем разница между этими двумя машинами за пределами экрана?
Новый ноутбук стоит доплаты, или лучше приобрести более старую модель?
Является ли Android действительно открытым исходным кодом?
И имеет ли это значение?
Является ли Android действительно открытым исходным кодом?
И имеет ли это значение?
Но как вы можете протестировать свою систему во время разработки и избежать проблем при работе и переключении между несколькими устройствами?