Web Geolocation API
- Kabla Web Fetch API
- Pya AJAX Muhtasari
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.
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>
Mfano wa kuzingatia:
- Kueneza kuwa inahusiana na Geolocation
- Ikiwa inahusiana, tena kufanya getCurrentPosition() method. Ikiwa hauhusiana, kuonesha ujumbe kwa mtu
- Ikiwa methodi ya getCurrentPosition imefanikiwa, inatuma kiwango cha coordinates kwa kufikia fungtion iliyotakiwa kwenye parameter (showPosition)
- 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; } }
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>
- Kabla Web Fetch API
- Pya AJAX Muhtasari