Занимаюсь грузоперевозками на своей газели, и у меня родилась идея сделать функцию отслеживания своего местоположения для всех посетителей своего сайта. Это очень удобно для тех, кто следит за своим грузом или тех, кто ждет машину. У меня получилось. И в этом посте я расскажу вам как реализовать эту функцию, которая, кстати, обойдется совсем недорого. Статья предназначена для людей, которые почти не имеют опыта в сфере создания сайтов и программировании в целом.    Вам понадобится: Редактор Visual Studio Code  Среда разработки  Android Studio Аккаунт Гугл для API Google Maps Доменное имя и хостинг с базой данных SQL Обычный телефон на андроиде Для начала рассмотрим схему взаимодействия всех элементов. После того как пользователь заходит на сайт, активируется подключенный в index.html файл myJsCode.js, в котором каждые 2 секунды идет обращение в google maps. В google maps передаются координаты текущего местоположения, которые хранятся в базе данных sql. Google maps возвращает карту с маркером, установленным в точке, соответствующей переданным координатам. Считывание новых координат из базы данных осуществляется в myJsCode.js через coordinatesToBrowser.php также каждые 2 секунды. Запись координат в базу данных осуществляет Android приложение через coordinatesFromAndroid.php каждые 2 секунды при условии движения андроид устройства. Пользователь приложения может включать и выключать определение координат. Далее соберем эту схему. 1.  Для инициализации google maps потребуются API ключ. Для его получения переходим на     https://cloud.google.com/maps-platform Нажимаем Get started. Создаем новый проект. В созданном проекте выбираем Maps JavaScript API. Нажимаем Enable. Жмем на гамбургер -> APIs & Services -> Credentials. Нажимаем на +Create Credentials И мы получили Api key 2. Создаем файл index.html и style.css и myJsCode.js. Писать код будем в  редакторе Visual Studio Code, скачиваем его по ссылке https://code.visualstudio.com/ index.html  В 71 строчке меняете API key на свой. В 69 строчке подключается файл myJsCode.js, который мы напишем ниже. В 53 строчке в блоке div будет располагаться карта с маркером.  Далее пишем  style.css В этом файле оставляем все как есть. Здесь уже предусмотрена адаптация под мобильные устройства с помощью media запросов. myJsCode.js В 1 и 2 строчке задаются координаты по умолчанию. В 6 строчке функция инициализации google maps. Внутри функции setTimeout каждые 2 секунды идет считывание координат из coordinatesToBrowser.php и передача новых координат в google maps. Файл coordinatesToBrowser.php напишем ниже. 3.  Все файлы заливаете на свой хост. Далее переходим в php MyAdmin. Создаете базу данных или используете уже созданную автоматически. В ней создаете таблицу под названием coordinates. В этой таблице создаете 3 столбца: id, latitude и longitude как на изображении. 4.  Далее в папку сайта на хостинг помещаете два php файла, которые будут взаимодействовать с базой данных, а именно таблицей coordinates. Файл coordinatesToBrowser.php будет считывать координаты из базы, а coordinatesFromAndroid.php будет записывать переданные android устройством координаты в базу данных.  coordinatesToBrowser.php В 15 строчке происходит выборка из созданной нами таблицы coordinates, а именно из столбцов latitude и longitude. Подключение к самой базе данных прокомментировано в коде. coordinatesFromAndroid.php. В 22 строчке идет перезапись столбцов новыми значениями. 5.  Заключительным этапом мы создадим андроид приложение, которое будет передавать координаты каждые 2 секунды во время движения. Приложение запускает сервис, который запрашивает текущие координаты у встроенного gps приемника. Для работы в фоновом режиме необходимо стороннее приложение, например такси или карты, при работе которых в верхней панели отображается 'самолетик' (геолокация). Несмотря на то, что сервис очень живучий в приложении предусмотрен менеджер, перезапускающий сервис каждые 30 секунд на случай, если андроид очистит от него память.  Итак скачиваем и устанавливаем среду разработки приложений Android Studio. Создаете новый проект, выбрав empty Activity Называете приложение и выбираете язык Java В баре слева выбираете App -> res -> layout открываете файл activity_main.xml и меняете его содержимое на: activity_main.xml   Файл представляет собой внешний вид страницы приложения. На нем расположены кнопки Получить координаты и Сбросить координаты, а также текстовые поля для отображения координат и региона.                                                                                                                            Далее App ->manifest открываете файл AndroidManifest.xml и меняете его содержимое на: AndroidManifest.xml Файл несет в себе информацию о приложении для операционной системы. В него включены данные об активити, сервисах, разрешениях и другом. Оставляете свой package="yourpackage" строчка 3.  Далее снова App -> res -> values открываете файл colors.xml и меняете его содержимое на: colors.xml В файле задаются цвета элементов. Далее Gradle Scripts открываете файл  build.grande(Module app) и меняете его содержимое на: build.grande(Module app) В файле информация о сборке проекта и его зависимостях. В строчке 5  оставляете свой  applicationId. Далее снова App -> Java -> YourPackage открываете файл MainActivity.java и меняете его содержимое на: MainActivity.java В этом файле код основного активити.  Строку 1 оставляете свою.  В файле проходит инициализация кнопок, текстовых полей. Инициализация AlarmManager, который 'пробуждает' основной сервис. Обработка нажатия кнопок. Обработка разрешений от пользователя. Прием и отображение координат и региона. Запуск сервиса GoogleService , который запрашивает gps координаты осуществляется в обработчике нажатия кнопки btn_start. Сброс координат в значение по умолчанию осуществляется в обработчике кнопки btn_finish. Сам GoogleService и AlarmManager опишем ниже. Далее Далее снова App -> Java -> YourPackage нажимаете правую кнопку мыши, во всплывающем меню создаете новый Java class и называете его GoogleService.java. GoogleService.java  Строку 1 оставляете свою. Файл представляет собой сервис, работающий в фоновом режиме, который принимает gps координаты с помощью LocationManager. В методе onLocationChanged идет передача координат на ваш сервер HttpPost post = new HttpPost("https://yourSite.ru/coordinatesFromAndroid.php") Адрес сайта поменяйте на свой строка 90.  Далее Далее снова App -> Java -> YourPackage нажимаете правую кнопку мыши, во всплывающем меню создаете новый Java class и называете его MyAlarmReceiver.java. MyAlarmReceiver.java Строку 1 оставляете свою.  Код в этом файле запускается каждые 30 секунд. Таким образом происходит перезапуск GoogleService, в случае если сервис перестал работать.  Далее включаете на своем андроид телефоне режим разработчика, подключаетесь через usb к компьютеру, в окошке Devices отобразится название вашего телефона. Нажимаете кнопку пуск. Начнется сборка и установка приложения на телефон. Если все прошло без ошибок, значит ваш сервис работает так же как и мой. Работу сервиса можете увидеть на сайте https://gaselka71.ru Для тех, кому нравится видеоформат можете посмотреть плейлист по этой теме на моем канале: Всем спасибо за внимание. Желаю удачи!