Im new в KIVY, pyjnius и python-android. Мне нужно сделать простое приложение для Android, которое отображает GPS-координаты. Но, как я уже сказал, я новичок в киви и pyforandroid. Может ли кто-нибудь показать/дать мне пример, который показывает мои координаты в простой виджет-киви-ярлык? Большое спасибо!
Я попытался сделать что-то подобное, но.
package org.renpy.android; //import java.util.ArrayList; //import java.util.List; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.content.Context; import android.os.Bundle; import android.os.Looper; import java.lang.Thread; import android.app.Activity; public class KivyGps < LocationManager lm; Thread gpsThread; public long minDistance = 1; public int minTime = 1000; static class KivyLocationListener implements LocationListener < public Location lastLocation = new Location(«Other»); //private Listlisteners = new ArrayList(); public void onLocationChanged(Location location) < // TODO Auto-generated method stub lastLocation = location; //updateListeners(location); >public void onProviderDisabled(String provider) < // TODO Auto-generated method stub >public void onProviderEnabled(String provider) < // TODO Auto-generated method stub >public void onStatusChanged(String provider, int status, Bundle extras) < // TODO Auto-generated method stub >// TODO Auto-generated method stub return lastLocation; > > static public KivyLocationListener locationListener = new KivyLocationListener(); public Thread init(final Activity currActivity) < gpsThread = new Thread( new Runnable() < public void run() < try < Looper.prepare(); lm = (LocationManager) currActivity.getSystemService( Context.LOCATION_SERVICE ); lm.requestLocationUpdates( LocationManager.GPS_PROVIDER, minTime, minDistance, locationListener ); Looper.loop(); >catch ( Exception e ) < e.printStackTrace(); >> > ); return gpsThread; > //gpsThread.start(); >
from jnius import autoclass LocationListener = autoclass(‘android.location.LocationListener’) LocationManager = autoclass(‘android.location.LocationManager’) LocationProvider = autoclass(‘android.location.LocationProvider’) Location = autoclass(‘android.location.Location’) Looper = autoclass(‘android.os.Looper’) Context = autoclass(‘android.content.Context’) KivyGps = autoclass(‘org.renpy.android.KivyGps’) currentActivity = cast(‘android.app.Activity’, PythonActivity.mActivity) lm = currentActivity.getSystemService( Context.LOCATION_SERVICE) if lm.isProviderEnabled( LocationManager.GPS_PROVIDER ): print ‘CON GPS’ else: print ‘SIN GPS’ lps = lm.getAllProviders() for lp in lps.toArray(): print lp #Arreglar problema de derechos ACCESS_FINE_LOCATION en Kivy Launcher lp = lm.getProvider(‘gps’) ll = KivyGps.locationListener kgps = KivyGps() gpsThread = kgps.init( currentActivity ) gpsThread.start() loc = ll.getCurrentLocation() if loc: print loc.getLatitude() print loc.getLongitude()
Nurlan Nabiyev 04 июнь 2013, в 14:25
Что делать со старым навигатором — [Мобильное Ретро]
БЕСПЛАТНЫЙ, САМЫЙ ТОЧНЫЙ НАВИГАТОР ДЛЯ ЛЕСА, ОХОТЫ, РЫБАЛКИ. РАБОТАЕТ БЕЗ ИНТЕРНЕТА.#GPS#НАВИГАТОР
Источник: overcoder.net
Как сделать GPS-карту
Global positioning satellites – глобальная система позиционирования – намного облегчает задачи картографии и пеленгации. Самый простой вариант использования этой системы для создания карты местности – это работа с программой или сервисом GIS (Geographic Information System – географической информационной системы). С помощью этой программы или сервиса исходные данные GPS конвертируются в топографическую карту. После того как GPS-карта создана, ее можно распечатать или перенести в навигатор, например, Garmin.
Статьи по теме:
- Как сделать GPS-карту
- Как установить gps карту
- Как сделать карту местности
Инструкция
Воспользуйтесь программой или интернет-сервисом для работы с GPS. Например, GPS Visualizer. Это бесплатный интернет-сервис для создания карт местности по всему миру на основе данных GPS . Убедитесь, что на компьютере также установлен плагин для веб-браузера SVG Viewer компании Adobe.
Найдите и скачайте файл с данными GPS (например, в формате GPX, KML/KMZ или CSV) для нужной местности. Для этого воспользуйтесь поиском на интернет-сайтах, которые обеспечивают данные GPS для конкретной страны или региона. Если данные так и не были найдены, можно воспользоваться еще одним сервисом GPS Visualizer для создания собственных GPX или KML файлов. На сайте GPS Visualizer перейдите на страницу Draw a Map («Создать карту»), затем найдите ссылку “use GPS Visualizer’s sandbox to create your own GPX or KML file”.
Откройте программу или сервис по составлению карт и перейдите на страницу с исходными данными карты. На этой странице, как правило, доступно множество настроек; оставьте настройки по умолчанию, если пока не разбираетесь в них. Выполните импорт данных GPS в программу, указав в текстовом поле файл и нажав на кнопку Import («Импорт») или Browse («Обзор»).
Выберите тип создаваемой карты в разделе Map Parameters («Параметры карты»). Он должен иметь фоновую карту в раскрывающемся списке. Выберите вариант одиночного изображения топографической карты для нужного региона. Например, для карты США в программе GPS Visualizer это “US: USGS Topo Map, Single Image”.
Создайте карту, нажав на кнопку с рисунком или листом. Если в программе есть возможность отображать карту во втором окне, выберите этот вариант, чтобы не потерять страницу со всеми настройками. Созданная карта может включать в себя такие функции, как путевые точки и треки, или туристические маршруты.
Источник: www.kakprosto.ru
USB GPS в Android
Для чего нужен «Личный блог» драйва? Каждый раз при переходе в профиль, отсвечивает надпись «В блоге пока ничего нет». Третий год на сайте, а в блоге ничего. Создам одну запись, добавлю информацию про подключение и настройку USB GPS в Android.
Зачем он нужен внешний GPS, при наличии встроенного в планшете/телефоне?
Плюсы:
1. «Приличный» USB GPS способен принимать большее количество спутников;
2. Может быть размещен в любой части автомобиля, умное размещение антенны повышает качество приёма;
3. «Стартует» практически сразу, через 2-5 секунд после включения, приём более 10-ка спутников;
4. Повышенная точность позиционирования, от одного до пяти метров. Такая точность позволяет авто навигаторам «понимать» в какой полосе движется автомобиль.
Минусы:
1. Необходимость настройки операционной системы для работы с устройством;
2. Дополнительные расходы на покупку.
Покатавшись пару лет с Nexus 7 в панели, пришел к выводу, что GPS требует улучшения качества работы. Плюс обратил внимание, что в местах отсутствия подключения к интернет, встроенный GPS превращается в тыкву. Сначала казалось, что проблема затрагивает только Яндекс навигатор.
Купил в play.google коммерческий вариант навигации «GPS Hавигация и карты Sygic» с пробками и прочими плюшками (перед НГ 2016 была распродажа, весь пакет обошелся в 15 евро). Протестировал пару недель, проблема осталась, нет интернета — нет GPS. Сам Sygic понравился, он более продуман, чем Яндекс навигатор.
Особенно удобно на ходу читать названия районов города и населенных пунктов, возникающих по курсу движения авто. В Яндекс такого нет до сих пор. Не суть, проблема осталась. Приобрёл внешний GPS и закрепил его в правой части лобового стекла.
GPS оказался гомном, не оправдал ожиданий. Сможете найти его на ebay, строка поиска «VK-172 Gmouse Usb Gps Ublox7», не рекомендую к покупке. Может пригодиться при полном отсутствии GPS. При подключении он принимает столько же спутников, сколько и встроенный GPS Nexus7, а временами и того меньше. Плюс пару раз в неделю свисток «зависает», и нужно передергивать его из разъёма USB.
Да и сам способ настройки, взамен штатного, для обывателей-потребителей, жуток и невыполним. Кусок инструкции по Ublox7 с pccar.ru:
Подключил usb gps ublox7 (он же vk 172) к mk908II с Android 4.2.2.
Делал всё по инструкции Rage2, за что ему большое спасибо!
Взял наугад модуль cdc-acm.ko(ну почти наугад т.к. в windows он не определялся как pl, ft, cp.), и повезло, появилось устройство ttyACM0 ))
Закинул либу, выставил скорость «busybox stty -F /dev/ttyACM0 9600»
проверил «cat /dev/ttyACM0» данные бегут)
Но не было пункта «Настройки -> Местоположения» и никакие программы не видели gps приемник. После 3х дневных танцев с бубнов сменил прошивку на Finless 1.6 Andorid 4.2.2 (до этого был Andorid 4.4 ). В ней этот пункт не вырезан.
Забросил свисток в шкаф, и забил на проблему. Прошел год, просматривая сайт по продаже и подготовке планшетов, наткнулся на LS23030G. Характеристики устройства радуют:
Базовый кристалл: MediaTek MT3333
Количество каналов: 99
Поддержка взаимодействия с системами SBAS (WAAS, EGNOS, MSAS, GAGAN)
Размеры: 49 х 41 х 14,1 мм
Напряжение питания: 4,75 — 5,25 В
Температурный диапазон: -40ºС … +85ºС
Характеристики GPS-приемника
Время захвата
при горячем старте вне помещения: < 1 c
при холодном старте вне помещения: 32 c
Точность 2D локализации
при автономной работе: 3 м
при использовании систем SBAS: 2,5 м
Частота обновления данных программируется от 1 Гц до 10 Гц
Диапазон высот: < 50000 м
Диапазон скоростей: < 515 м/c
Поддерживаемые протоколы:
NMEA 0183 ver 4.10: 9600 бит/c, 1Гц: CGA, GLL, GSA, GSV, RMC, VTG
Позвонил в СПБ, поговорил с Алексеем generator . На мой вопрос по настройке устройства в Android, получил ответ: «Ничего настраивать не надо, воткнул в USB планшета и работает». И Все? «И все!». Ок, заказал. Но закрались некоторые сомнения. Оставалось не ясным, как внешнее устройство при подключении, заменяет собой встроенное в Android.
Может Android уже «допилили» и он поумнел? Позже опасение подтвердилось. Надеюсь Алексей использует у себя какую то хитрую прошивку на своих планшетах, позволяющую просто подключать дополнительный GPS… Воткнул и работает, прямо мечта…
Через неделю посылка пришла, подключил к планшету в машине ииии. Иии нифига, gps приёмник мигает красным диодом, видимо работает, но толку от этого 0. Отправился в интернет, искать решение. Через день попал на какой то немецкий форум, где описывалась настройка через функцию фиктивных местоположений. Способ очень простой, никаких root функций Android не требуется. Инструкция:
1. Устанавливаем программу «GNSS Commander — GPS status», она бесплатна
2. Включаем в настройках Android режим «разработчика» (стучим пальцем по номеру версии Android)
3. В меню «разработчика» выбираем программу для фиктивных местоположений «GNSS Commander». Программа будет получать данные от USB GPS и передавать их в Android, взамен данных штатного приёмника.
4. Настраиваем «GNSS Commander» на работу с USB GPS.
5. Запускаем «GNSS Commander»
6. Запускаем, например, Яндекс навигатор, и наслаждаемся точным позиционированием.
Далее представляю набор скриншотов по настройке USB GPS в Android.
Работой внешнего GPS доволен, но есть и минусы:
1. После пробуждения планшета, необходимо перейти в приложение «GNSS Commander», что бы «разбудить» его.
2. Периодически у Яндекс навигатора случаются припадки, и он внезапно предлагает спрыгнуть с третьего кольца, сделать петлю и вернуться обратно на маршрут.
P.S.
Надеюсь выше изложенный способ будет полезен анонимосу.
UPDATE 04.11.2019 Важно
С августа 2019 вышло печальное обновление GNSS Commander.
В котором тимлид разработчиков ( хороший человек ) сообщил общественности, что в связи с большим количеством запросов в техническую поддержку бла-бла-бла-бла, они решили прекратить дальнейшую работу устройств USB GPS в своём приложении. Т.к. обращения пользователей не приносят денег. Всем тем кто выполнил автоматическое обновление приложения (один из них ваш лучший друг) и «похерил» работу своих USB GPS, необходимо «откатиться» на версию приложения 2.6. Его можно попробовать поискать в интернетах, либо скачать с моего яндекс диска: GNSS Commander 2.6
Далее файл необходимо скопировать на планшет, и установить через любой файл менеджер.
В дальнейшем обновление GNSS Commander выполнять более не стоит.
Очень жаль, что же вы Немцы делаете…
Источник: www.drive2.ru