Start · Sprachen · JavaScript · Referenz · GeolocationCoordinates.altitudeAccuracy

GeolocationCoordinates.altitudeAccuracy

Eigenschaft

Schreibgeschützte Angabe der Höhengenauigkeit in Metern (95 % Konfidenz) zu <code>altitude</code>, oder <code>null</code>, wenn keine Höhe bekannt ist.

seit JavaScript Baseline: alle Browser (nur im sicheren Kontext, H Kategorie: webapi

Signatur

GeolocationCoordinates.altitudeAccuracy

Beschreibung

Die schreibgeschützte Eigenschaft altitudeAccuracy des Interfaces GeolocationCoordinates gibt an, wie genau der Wert von altitude ist. Der Wert ist ein strikt positiver double in Metern. Er beschreibt den Radius, in dem die tatsächliche Höhe mit einer Wahrscheinlichkeit von 95 % liegt. Ein Wert von 10 heißt also: Die echte Höhe liegt sehr wahrscheinlich höchstens 10 m über oder unter dem gemeldeten Wert.

Kann das Gerät keine Höhe ermitteln, sind altitude und altitudeAccuracy beide null. Das kommt häufig vor, etwa bei einer Ortung über WLAN oder IP-Adresse auf Desktop-Rechnern. Einen verlässlichen Höhenwert liefern meist nur Geräte mit GPS oder Barometer.

Nutzen Sie die Eigenschaft, wenn Höhenwerte eine Rolle spielen, zum Beispiel für Höhenprofile in Wander- oder Fahrrad-Apps, für die Stockwerkserkennung oder um ungenaue Messungen herauszufiltern. Den Wert erhalten Sie über position.coords in den Callbacks von navigator.geolocation.getCurrentPosition() und watchPosition().

Rückgabewert

Typ
number | null
Beschreibung
Die Höhengenauigkeit in Metern (strikt positiv, 95 % Konfidenz) oder null, wenn keine Höhenangabe vorliegt.

Beispiele

Höhe und Genauigkeit einmalig abfragen

navigator.geolocation.getCurrentPosition(
  ({ coords }) => {
    if (coords.altitude === null) {
      console.log('Keine Höhenangabe verfügbar.');
      return;
    }
    console.log(`Höhe: ${coords.altitude.toFixed(1)} m ± ${coords.altitudeAccuracy.toFixed(1)} m`);
  },
  (err) => console.error(`Fehler ${err.code}: ${err.message}`),
  { enableHighAccuracy: true, timeout: 10000 }
);
Höhe: 312.4 m ± 8.0 m

Ungenaue Höhenwerte beim Tracking herausfiltern

const MAX_HOEHENFEHLER = 15; // Meter
const profil = [];

const watchId = navigator.geolocation.watchPosition(
  ({ coords, timestamp }) => {
    const { altitude, altitudeAccuracy } = coords;
    if (altitude === null || altitudeAccuracy === null) return;
    if (altitudeAccuracy > MAX_HOEHENFEHLER) {
      console.log(`Verworfen: ±${altitudeAccuracy} m`);
      return;
    }
    profil.push({ zeit: timestamp, hoehe: altitude });
    console.log(`Punkt ${profil.length}: ${altitude.toFixed(1)} m`);
  },
  console.error,
  { enableHighAccuracy: true, maximumAge: 0 }
);

// Nach 5 Minuten beenden
setTimeout(() => navigator.geolocation.clearWatch(watchId), 5 * 60 * 1000);
Punkt 1: 412.3 m Verworfen: ±42 m Punkt 2: 415.8 m

Promise-Wrapper mit Qualitätsstufe

const getPosition = (options) =>
  new Promise((resolve, reject) =>
    navigator.geolocation.getCurrentPosition(resolve, reject, options)
  );

const hoehenQualitaet = (acc) => {
  if (acc === null) return 'unbekannt';
  if (acc <= 5) return 'sehr gut';
  if (acc <= 20) return 'brauchbar';
  return 'grob';
};

const main = async () => {
  const { coords } = await getPosition({ enableHighAccuracy: true });
  console.log('Höhenqualität:', hoehenQualitaet(coords.altitudeAccuracy));
};

main().catch((e) => console.error(e.message));
Höhenqualität: brauchbar

// Wichtig · Fallstricke

  • Häufig null: Auf Desktop-Rechnern und bei einer Ortung über Netzwerk oder IP fehlt die Höhe fast immer. Prüfen Sie deshalb immer auf null, bevor Sie Methoden wie toFixed() aufrufen.
  • Nicht mit accuracy verwechseln: accuracy beschreibt die waagerechte Genauigkeit von Breiten- und Längengrad. altitudeAccuracy gilt nur für die Höhe. Bei GPS ist die Höhe meist deutlich ungenauer als die waagerechte Position.
  • Bezugssystem: altitude bezieht sich laut Spezifikation auf das WGS-84-Ellipsoid, nicht auf den Meeresspiegel. Die Abweichung kann je nach Region mehrere Dutzend Meter betragen, und zwar unabhängig von altitudeAccuracy.
  • enableHighAccuracy: true erhöht die Chance auf GPS-Höhenwerte, verbraucht aber mehr Akku und dauert länger.
  • Kompatibilität und Datenschutz: Die Eigenschaft wird von allen modernen Browsern unterstützt. Die Geolocation-API funktioniert jedoch nur im sicheren Kontext (HTTPS oder localhost) und erst, nachdem die Nutzerin oder der Nutzer zugestimmt hat. Außerdem kann eine Permissions-Policy (geolocation) sie blockieren, etwa in iframes.