Получить местоположение GPS из веб-браузера

Я разрабатываю мобильный веб-сайт, там я интегрировал Google Maps, мне нужно динамически заполнять поле "От" Google Maps.

Возможно ли получить местоположение GPS из веб-браузера и динамически заполнить его в поле "От" карты Google?

Ответ 1

Если вы используете API геолокации, это будет так же просто, как использовать следующий код.

navigator.geolocation.getCurrentPosition(function(location) {
  console.log(location.coords.latitude);
  console.log(location.coords.longitude);
  console.log(location.coords.accuracy);
});

Вы также можете использовать Google Location Location API.

Этот вопрос обсуждался в Можно ли обнаружить местоположение GPS в мобильном браузере? и Получить данные позиции с мобильных устройств браузер. Здесь вы можете найти дополнительную информацию.

Ответ 2

См. обсуждение Как получить GPS-координаты в браузере

У вас есть ссылка на пример приложения Где я?, который работает на мобильных устройствах. Я тестировал его на своем Android, и он запустил модуль GPS для получения текущих координат. Вы можете проанализировать источник на живом примере.

Я сделал QR-код для быстрого доступа с мобильного:

Where Am I QR code

Ответ 3

Чтобы дать более конкретный ответ. HTML5 позволяет вам получить гео-координаты, и это делает довольно приличную работу. В целом поддержка браузера для геолокации довольно хороша, все основные браузеры, кроме ie7 и ie8 (и opera mini). IE9 выполняет эту работу, но является худшим исполнителем. Оформить заказ caniuse.com:

http://caniuse.com/#search=geo l

Также вам необходимо получить разрешение вашего пользователя на доступ к их местоположению, поэтому убедитесь, что вы проверяете это и даете некоторые достойные инструкции в случае его отключения. Специально для разрешений на переключение Iphone для Safari немного громоздко.

Ответ 4

Используйте это, и вы найдете всю информацию на http://www.w3schools.com/html/html5_geolocation.asp

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>

Ответ 5

Существует GeoLocation API, но поддержка браузера в настоящее время довольно тонкая. Большинство сайтов, которые заботятся о таких вещах, используют базу данных GeoIP (с обычными оговорками о неточности такой системы). Вы также можете посмотреть сторонние сервисы, требующие взаимодействия с пользователем, например FireEagle.

Ответ 6

Позвольте использовать последние функции жирной стрелки:

navigator.geolocation.getCurrentPosition((loc) => {
  console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})

Ответ 7

наблюдаемый

/*
  function geo_success(position) {
    do_something(position.coords.latitude, position.coords.longitude);
  }

  function geo_error() {
    alert("Sorry, no position available.");
  }

  var geo_options = {
    enableHighAccuracy: true,
    maximumAge        : 30000,
    timeout           : 27000
  };

  var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
  */
  getLocation(): Observable<Position> {
    return Observable.create((observer) => {
      const watchID = navigator.geolocation.watchPosition((position: Position) => {
        observer.next(position);
      });
      return () => {
        navigator.geolocation.clearWatch(watchID);
      };
    });
  }

  ngOnDestroy() {
    this.sub.unsubscribe();
  }

Ответ 8

Как сделать так, чтобы местоположение всегда было разрешено по умолчанию для локального файла? Потому что в режиме онлайн можно проверить "Запомнить мой выбор". введите описание изображения здесь

Пожалуйста помоги