Web Geolocation API

Kumlea eneo binafsi wa mtu

HTML Geolocation API inatumiaa eneo binafsi ya mtu.

Kwa sababu hii inaweza kumichora heshima, viwili vinaweza kulaghai eneo binafsi hivi karibuni.

Tukutaka kumwita

Madoa:Geolocation inaeneza kwa vifaa vya kijani vilivyo na GPS (kama simu ya kijani) kwa uadilifu wa kina.

Wote wa vifaa vya kijani vinahusiana na Geolocation API:

Chrome IE Firefox Safari Opera
Inahusiana Inahusiana Inahusiana Inahusiana Inahusiana

Madoa:Kuanzia Chrome 50, Geolocation API itakuwa inahitaji muhimu wa kumekadiri, kama HTTPS. Ikiwa ujenzi wako una kumekadiri wa huzina (kama HTTP), mawendo ya kufikia upeo wa mtu hawakufaa tena.

Kutumia Geolocation API

getCurrentPosition() Methodi hufanyia kumaliza upeo wa mtu.

Mfano wa chini hauonesha upeo wa ukanda na upeo wa ukoloni wa mtu:

Mifano

<script>
const x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation inasababuwa na kifungu hiki.";
  }
}
function showPosition(position) {
  x.innerHTML = "Urefu: " + position.coords.latitude +
  "<br>Urefu: " + position.coords.longitude;
}
</script>

Tukutaka kumwita

Mfano wa kuzingatia:

  1. Kueneza kuwa inahusiana na Geolocation
  2. Ikiwa inahusiana, tena kufanya getCurrentPosition() method. Ikiwa hauhusiana, kuonesha ujumbe kwa mtu
  3. Ikiwa methodi ya getCurrentPosition imefanikiwa, inatuma kiwango cha coordinates kwa kufikia fungtion iliyotakiwa kwenye parameter (showPosition)
  4. Fungtion ya showPosition inapakia upeo wa ukanda na upeo wa ukoloni

Mfano wa juu unaa ni script wa kigeografia wa kawaida bila kumaliza kosa.

Kumaliza kosa na kumwambia mtu

getCurrentPosition() Mwili wa kwanza wa methodi hufanyia kusaidia kumaliza kosa. Ikiwa hauwezi kufikia upeo wa mtu, inasababisha kufanywa kazi ya kufanya kazi ya kufikia upeo wa mtu:

Mifano

function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation.";
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable.";
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out.";
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred.";
      break;
  }
}

Tukutaka kumwita

Kuonesha matokeo kwenye ramani

Kwa ukuonesha matokeo kwenye ramani, unavyotarajia kufikia huduma ya ramani, kama Google Ramani.

在下面的例子中,返回的纬度和经度用于在 Google 地图中显示位置(使用静态图像):

Mifano

function showPosition(position) {
  let latlon = position.coords.latitude + "," + position.coords.longitude;
  let img_url = "https://maps.googleapis.com/maps/api/staticmap?center=
  "+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_KEY";
  document.getElementById("mapholder").innerHTML = "";
}

Location-specific 信息

此页面演示了如何在地图上显示用户的位置。

Geolocation 对于特定于位置的信息也非常有用,例如:

  • 最新的本地信息
  • 显示用户附近的兴趣点
  • 逐向导航(Turn-by-turn navigation)(GPS)

getCurrentPosition() 方法 - 返回数据

getCurrentPosition() 方法在成功时返回一个对象。会始终返回纬度、经度和精度属性。如果可用,则返回其他属性:

Mafaa Rudi
coords.latitude Latitude kwa thamani ya labda (inaeneo zaidi inarudi zaidi).
coords.longitude Longitude kwa thamani ya labda (inaeneo zaidi inarudi zaidi).
coords.accuracy Tawala ya eneo la siku (inaeneo zaidi inarudi zaidi).
coords.altitude Ukubwa wa eneo wa usiku wa bahari kwa mita (inaeneo kama kina) inarudi.
coords.altitudeAccuracy Tawala ya eneo la siku (inaeneo kama kina) inarudi.
coords.heading Mwongozo wa mabara kutoka kaskazini hadi kusini kwa kina (inaeneo kama kina) inarudi.
coords.speed Vya kidakika kwa sekunde (inaeneo kama kina) inarudi.
timestamp Tarehe na wakati wa muhimu (inaeneo kama kina) inarudi.

Geolocation - Matukio mengi yenye majadiliano

Kuna matukio mengi yenye majadiliano ya Geolocation:

  • watchPosition() - Rudi eneo la siku wa mtu (kama GPS kwenye mabati ya michezo) na kuendeleza eneo la siku hizi.
  • clearWatch() - Hifadhi method ya watchPosition ().

Mifano inayotazama hapa ni watchPosition() Makusanyiko. Inahitajika kusoma kifaa cha GPS kingi (kama mifano ya simu ya mkopo):

Mifano

<script>
const x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation inasababuwa na kifungu hiki.";
  }
}
function showPosition(position) {
  x.innerHTML = "Urefu: " + position.coords.latitude +
  "<br>Urefu: " + position.coords.longitude;
}
</script>

Tukutaka kumwita