Web tarayıcısından GPS konumu alın


165

Mobil tabanlı bir web sitesi geliştiriyorum, orada Google Haritalar'ı entegre ettim, Google Haritalar'ın 'Kimden' alanını dinamik olarak doldurmam gerekiyor.

GPS konumunu web tarayıcısından almak ve bir Google Haritasının 'Kimden' alanına dinamik olarak doldurmak mümkün mü?


2
Hangi cep telefonlarını desteklemeyi düşünüyorsunuz?
Rowland Shaw

tüm mobil tarayıcıları desteklemek istiyorum, ancak i-telefon yüksek öncelikli
Ganesh

Yerel bir uygulama yazmaktan daha iyi olabilirsiniz, çünkü mevcut olan donanımla daha sıkı entegrasyona izin verir
Rowland Shaw

16
ihtiyaç sadece konumla ilgili ise, o zaman yerel bir uygulama çok abartılı. iOS tek mobil değil, sadece bir öncelik.
Gonçalo Veiga

Yanıtlar:


195

Eğer kullanırsanız Coğrafi Konum API , aşağıdaki kodu kullanarak olarak basit olarak olurdu.

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

Ayrıca kullanmak mümkün olabilir Google'ın Müşteri Yer API .

Bu sorun, Bir mobil tarayıcının GPS konumunu saptamak mümkün mü? ve Mobil tarayıcıdan konum verilerini alın . Burada daha fazla bilgi bulabilirsiniz.


Google Müşteri Konumu API'sından hala bahsediliyor mu? Sağlanan bağlantı Google Loader'a gider
Shane N

1
Bu sayfada kullanılabilir API'lardan biri olarak görmüyorum. - Google Latitude API'sını kullanabilirsiniz: code.google.com/apis/latitude - Bununla müşterinin geçerli konumunu bulmak mümkündür: code.google.com/apis/latitude/v1/…
dochoffiday


Hyy, kodlama yoluyla paylaşım yerini otomatik olarak etkinleştirebilir miyiz
Bay Tomar

2
Bu, konumunuzun kullanılmasını gerektiriyor mu?
Jack

21

Biraz daha spesifik bir cevap vermek için. HTML5 coğrafi koordinatları elde etmenizi sağlar ve oldukça iyi bir iş çıkarır. Coğrafi konum için tarayıcı desteği genel olarak oldukça iyidir, ie7 ve ie8 (ve opera mini) hariç tüm büyük tarayıcılar. IE9 işi yapıyor ama en kötü performans. Ödeme caniuse.com:

http://caniuse.com/#search=geol

Ayrıca, konumlarına erişmek için kullanıcının onayına ihtiyacınız vardır, bu yüzden bunu kontrol ettiğinizden ve kapatılması durumunda bazı iyi talimatlar verdiğinizden emin olun. Özellikle Iphone için Safari için açma izinleri biraz hantal.


dotnetcurry.com/aspnet-mvc/782/… asp.net mvc ortamında uygulama için kullanışlı bir referanstır
Walter de Jong

13

Bunu kullanın ve tüm bilgileri http://www.w3schools.com/html/html5_geolocation.asp adresinde bulabilirsiniz.

<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>

1
Sadece bir not: getCurrentPosition () ve watchPosition () artık güvenli olmayan kökenlerde çalışmaz. Bu özelliği kullanmak için, uygulamanızı HTTPS gibi güvenli bir kaynağa geçirmeyi düşünmelisiniz.
user2589273

4

Orada Coğrafi Yer API , ancak tarayıcı desteği şu anda zeminde oldukça incedir. Bu tür şeyleri önemseyen çoğu site bir GeoIP veritabanı kullanır (böyle bir sistemin yanlışlığı ile ilgili genel şartlar ile). FireEagle gibi kullanıcı işbirliği gerektiren üçüncü taraf hizmetlerine de bakabilirsiniz .


1
hızlı yanıtınız için çok teşekkürler. mümkünse bana daha fazla ipucu verebilir misiniz ...
Ganesh

2

izlenebilir

/*
  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();
  }

1

En son yağ ok işlevlerini kullanalım :

navigator.geolocation.getCurrentPosition((loc) => {
  console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.