HTML5-Geolokalisierung
- Vorherige Seite HTML5-Migration
- Nächste Seite HTML5-Ziehen und Loslassen
HTML5 Geolocation (Geolokalisierung) wird verwendet, um die Position des Benutzers zu bestimmen.
Probieren Sie es selbst aus: Zeigen Sie Ihre Position auf Google Maps an
Bestimmen Sie die Position des Benutzers
Das HTML5 Geolocation API wird verwendet, um die geografische Lage des Benutzers zu erhalten.
Da diese Funktion das Datenschutzrecht des Benutzers verletzen könnte, sind die Standortinformationen des Benutzers ohne Zustimmung des Benutzers nicht verfügbar.
Browser-Unterstützung
Internet Explorer 9, Firefox, Chrome, Safari und Opera unterstützen die Geolokalisierung.
Anmerkung:Für Geräte mit GPS, wie z.B. iPhone, ist die Geolokalisierung präziser.
HTML5 - Geolokalisierung verwenden
Verwenden Sie die Methode getCurrentPosition(), um die Position des Benutzers zu erhalten.
Das folgende Beispiel ist ein einfaches Beispiel zur Geolokalisierung, das die Längs- und Breitengrade der Benutzerposition zurückgibt.
Beispiel
<script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML="Geolocation wird von diesem Browser nicht unterstützt.";} } function showPosition(position) { x.innerHTML="Breitengrad: " + position.coords.latitude + "<br />Längengrad: " + position.coords.longitude; } </script>
Beispiel Erklärung:
- Überprüfen Sie, ob Geolokalisierung unterstützt wird
- Falls die Methode getCurrentPosition() unterstützt wird, wird sie ausgeführt. Falls nicht, wird eine Nachricht an den Benutzer angezeigt.
- Falls getCurrentPosition() erfolgreich ausgeführt wird, wird ein coordinates-Objekt an die Funktion zurückgegeben, die in showPosition() angegeben ist
- Die Funktion showPosition() erhält und zeigt die Längs- und Breitengrade an
Das obige Beispiel ist ein sehr einfaches Skript zur Geolokalisierung, das keine Fehlerbehandlung enthält.
Fehler und Ablehnung behandeln
Der zweite Parameter der Methode getCurrentPosition() wird verwendet, um Fehler zu behandeln. Er legt fest, welche Funktion ausgeführt wird, wenn die Bestimmung der Benutzerposition fehlschlägt:
Beispiel
function showError(error) { switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="Der Benutzer hat die Anfrage zur Geolokalisierung abgelehnt." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Information zur Standortbestimmung ist nicht verfügbar." break; case error.TIMEOUT: x.innerHTML="获取用户位置的请求超时了。" break; case error.UNKNOWN_ERROR: x.innerHTML="发生了一个未知错误。" break; } }
错误代码:
- Permission denied - 用户不允许地理定位
- Position unavailable - 无法获取当前位置
- Timeout - 操作超时
在地图上显示结果
如需在地图上显示结果,您需要访问可使用经纬度的地图服务,例如谷歌地图或百度地图:
Beispiel
function showPosition(position) { var latlon=position.coords.latitude+","+position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" +latlon+"&zoom=14&size=400x300&sensor=false"; document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />"; }
在上面的例子中,我们使用返回的经纬度数据在谷歌地图上显示位置(使用静态图像)。
上面的链接向您展示了如何使用脚本来显示带有标记、缩放和拖拽选项的交互式地图。
给定位置的信息
本页演示的是如何在地图上显示用户的位置。不过,地理定位对于给定位置的信息同样很有用。
案例:
- 更新本地信息
- 显示用户周围的兴趣点
- 交互式车载导航系统 (GPS)
getCurrentPosition() 方法 - 返回数据
如果成功,则 getCurrentPosition() 方法返回一个对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回以下属性。
属性 | 描述 |
---|---|
coords.latitude | 十进制数的纬度 |
coords.longitude | 十进制数的经度 |
coords.accuracy | 位置精度 |
coords.altitude | 海拔,以米计,相对于海平面 |
coords.altitudeAccuracy | Höhenpräzision der Position |
coords.heading | Richtung, beginnend vom Nordpól in Grad |
coords.speed | Geschwindigkeit, in Metern pro Sekunde |
timestamp | Antwortende Datum/Zeit |
Geolocation-Objekt - andere interessante Methoden
watchPosition() - Gibt die aktuelle Position des Benutzers zurück und gibt weiterhin Updates zurück, wenn der Benutzer sich bewegt (wie ein GPS im Auto).
clearWatch() - Beenden der Methode watchPosition()
Der folgende Beispiel zeigt die Methode watchPosition(). Sie benötigen ein präzises GPS-Gerät, um dieses Beispiel zu testen (z.B. iPhone):
Beispiel
<script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.watchPosition(showPosition); } else{x.innerHTML="Geolocation wird von diesem Browser nicht unterstützt.";} } function showPosition(position) { x.innerHTML="Breitengrad: " + position.coords.latitude + "<br />Längengrad: " + position.coords.longitude; } </script>
- Vorherige Seite HTML5-Migration
- Nächste Seite HTML5-Ziehen und Loslassen