From a55b575e8089ee6cab7c5c262a7e6db55d0e34d6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:46:50 +0100 Subject: unslug es: move --- files/es/webapi/estado_de_bateria/index.html | 39 ---- files/es/webapi/index.html | 144 -------------- files/es/webapi/pointer_lock/index.html | 284 --------------------------- files/es/webapi/using_geolocation/index.html | 232 ---------------------- 4 files changed, 699 deletions(-) delete mode 100644 files/es/webapi/estado_de_bateria/index.html delete mode 100644 files/es/webapi/index.html delete mode 100644 files/es/webapi/pointer_lock/index.html delete mode 100644 files/es/webapi/using_geolocation/index.html (limited to 'files/es/webapi') diff --git a/files/es/webapi/estado_de_bateria/index.html b/files/es/webapi/estado_de_bateria/index.html deleted file mode 100644 index 9cdc7259be..0000000000 --- a/files/es/webapi/estado_de_bateria/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: API de Estado de Bateria -slug: WebAPI/Estado_de_Bateria -tags: - - API - - Apps - - Firefox OS - - Mobile -translation_of: Web/API/Battery_Status_API ---- -

La API de Estado de Batería, también conocida como "Battery API", provee información acerca del sistema de carga de la batería y permite notificar mediante eventos que son enviados cuando el nivel de la batería cambia. Este puede ser usado para ajustar el uso de recursos por parte de una aplicación y evitar un gasto innecesario de energía cuando la batería esta baja o para guardar cambios en un archivo antes de que la batería se agote y así prevenir perdida de información.

-

La API de Estado de Batería se puede extender mediante {{domxref("window.navigator")}} con una propiedad {{domxref("window.navigator.battery")}} que pertenece al objeto {{domxref("BatteryManager")}} y agrega algunos nuevos eventos que usted puede recibir en el monitor de estado de la batería.

-

Ejemplo

-

En este ejemplo, observamos los cambios en el estado de la carga (este o no conectado y cargando) y  en el nivel de la batería. Esto se hace escuchando el evento {{event("chargingchange")}} y el evento {{event("levelchange")}} respectivamente.

-
var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
-
-function updateBatteryStatus() {
-  console.log("Battery status: " + battery.level * 100 + " %");
-
-  if (battery.charging) {
-    console.log("Battery is charging");
-  }
-}
-
-battery.addEventListener("chargingchange", updateBatteryStatus);
-battery.addEventListener("levelchange", updateBatteryStatus);
-updateBatteryStatus();
-
-

Vea también: El ejemplo en las especificaciones

-

Especificaciones

-

{{page("/en-US/docs/Web/API/BatteryManager","Specifications")}}

-

Compatibilidad del Navegador

-

{{page("/en-US/docs/Web/API/BatteryManager","Browser_compatibility")}}

-

Vea también

- diff --git a/files/es/webapi/index.html b/files/es/webapi/index.html deleted file mode 100644 index 0c189b625d..0000000000 --- a/files/es/webapi/index.html +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: WebAPI -slug: WebAPI -tags: - - Apps - - DOM - - Firefox OS - - Mobile - - NeedsTranslation - - TopicStub -translation_of: Web/API -translation_of_original: WebAPI ---- -

WebAPI es un termino usado para referirse al conjunto de APIs compatibles y de acceso a los dispositivos que permite a las Web apps y contenido acceder al hardware del dispositivo (como el estado de la batería o la vibración de hardware), al igual que acceso a información almacenada en el dispositivo (como el calendario o la lista de contactos). Agregando estas APIs, esperamos expandir lo que la Web puede hacer hoy y solo plataformas propietarias fueron capaces de hacer en el pasado.

- -
-

Nota: More of this documentation has been written than it looks like; links are not all added yet. We're actively working on improving this and expect to see things much better over the next couple of weeks. See the WebAPI doc status page, where we're tracking work on WebAPI docs.

-
- -
-
-

APIs DE COMUNICACIÓN

- -
-
API de información de la red
-
Provee información básica sobre la conexión de red actual, como la velocidad de conexión.
-
- -
-
Bluetooth
-
La API de  WebBluetooth provee acceso a bajo nivel  al hardware de Bluetooth del dispositivo.
-
API de conexión móvil {{NonStandardBadge}}
-
Expone información sobre la conectividad celular del dispositivo, como la fuerza de la señal, información del operador y así suscesivamente.
-
API de estadísticas de red
-
Monitorea la data usada y expone esta data a aplicaciones privilegiadas.
-
TCP Socket API
-
Proporciona sockets de bajo nivel y soporte SSL.
-
Telefonía {{NonStandardBadge}}
-
Permite a las apps contestar llamadas telefónicas y usar la interfaz de usuario de telefonía integrada.
-
WebSMS {{NonStandardBadge}}
-
Permite a las apps enviar y recibir mensajes de texto, así como también acceder y manejar los mensajes almacenados en el dispositivo.
-
API de información de WiFi
-
API privilegiada, la cual provee información sobre la fuerza de la señal, el nombre de la red actual, redes wifi disponibles, y más.
-
- -

APIS de acceso a Hardware

- -
-
API de sensor de luz ambiental
-
Provee acceso al sensor de luz ambiental, el cual permite a una app detectar el nivel de luz ambiental proximos al dispositivo.
-
API de estado de batería
-
Provee información sobre el nivel de carga de la batería y si el dispositivo se encuentra conectado a un punto de carga o no.
-
- -
-
API de Geolocalización
-
Provee información sobre la ubicación física del dispositivo.
-
API de bloqueo de puntero
-
Permite a las apps bloquear acceso al mouse y obtener acceso a los deltas de movimiento en lugar de coordenadas absolutas; esto es ideal para juegos.
-
- -
-
API de proximidad
-
Permite determinar la proximidad del dispositivo a objetos cercanos, como el rostro del usuario.
-
API de orientación del dispositivo
-
Provee notificaciones cuando la orientación del dispositivo cambia.
-
API de orientación de pantalla
-
Provee notificaciones cuando cambia la orientación de la pantalla. También puedes usar esta API para dejar que su app indique que orientación prefiere.
-
API de Vibración
-
Permite a las apps controlar la vibración de hardware del dispositivo para cosas como retroalimentación háptica en juegos. Esto no es pensado para cosas como vibraciones de notificaciones, para ello revisa la API de Alarma.
-
- -
-
API de Cámara {{NonStandardBadge}}
-
Permite a las apps tomar fotografías y/o grabar videos usaando la cámara integrada del dispositivo.
-
API de administración de energía {{NonStandardBadge}}
-
Permite a las apps encender o apagar la pantalla, el CPU, la energía del dispositivo, y así sucesivamente. También provee soporte para escuchar e inspeccionar eventos de bloqueo de recursos.
-
- -

View All...

-
- -
-

APIs de administración de información

- -
-
- -
-
API de identificador de archivos
-
Provee soporte para escribir archivos con soporte de bloqueo.
-
IndexedDB
-
Almacenamiento de información estructurada del lado cliente con soporte para búsquedas de alto rendimiento.
-
- -

OtrAS APIs

- -
-
API de Alarma
-
Permite a las apps programar notificaciones.
-
También proporciona soporte para el lanzamiento de una aplicación de forma automática en un momento determinado.
-
Apps API
-
La API de aplicaciones web abiertas permite soporte para instalar y administrar aplicaciones web. Y además, permite a las aplicaciones determinar información de pago.
-
API de navegador
-
Provee soporte para construir un navegador web usando tecnologías web completamente (en esencia, un navegador dentro de un navegador).
-
- -
-
Idle API
-
Permite a las apps recibir información cuando el usuario no está usando el dispositivo activamente.
-
API de permisos
-
Administra permisos de las apps en una ubicación central. Usado por la app de Ajustes.
-
Simple Push API
-
Permite a la plataforma enviar mensajes de notificación a aplicaciones específicas.
-
API de tiempo/reloj {{NonStandardBadge}}
-
Provee soporte para ajustar el tiempo actual. La zona horaria es establecida usando la API de ajustes.
-
Web Activities {{NonStandardBadge}}
-
Permite a una app delegar una actividad a otra app; por ejemplo, una app podría preguntar a otra app seleccionar (o crear) y devolver una foto. Normalmente el usuario es capaz de configurar que aplicaciones se utilizan para que actividad.
-
WebPayment API {{NonStandardBadge}}
-
Permite a contenido web iniciar pago y reembolsos por bienes virtuales.
-
- -

comunidad WebAPI

- -

Si necesitas ayuda con estas APIs, existen varias maneras en la que puedes hablar con otros desarrolladores que las utilizan.

- -
    -
  • Consulta en el foro de WebAPI: {{DiscussionList("dev-webapi", "mozilla.dev.webapi")}}
  • -
  • Visita el canal de IRC de WebAPI: #webapi
  • -
- -

Don't forget about the netiquette...

- - - - -
-
- -

 

diff --git a/files/es/webapi/pointer_lock/index.html b/files/es/webapi/pointer_lock/index.html deleted file mode 100644 index 13a27d6d48..0000000000 --- a/files/es/webapi/pointer_lock/index.html +++ /dev/null @@ -1,284 +0,0 @@ ---- -title: API Pointer Lock -slug: WebAPI/Pointer_Lock -translation_of: Web/API/Pointer_Lock_API ---- -

 

- -

Pointer Lock (antes llamado Bloqueo del Mouse)  proporciona métodos de entrada basados ​​en el movimiento del ratón a traves del tiempo (es decir, deltas), no sólo la posición absoluta del cursor del mouse. Te da acceso al movimiento puro del mouse, bloquea el objetivo de los eventos del mouse a un solo elemento, elimina límites en cuanto a  que tan lejos puedes mover el mouse en una sola dirección, y quita el cursor de la vista.

- -

Esta API es útil para aplicaciones que requieren bastantes acciones para controlar los movimientos del mouse, rotar objetos y cambiar las entradas. Es especialmente importante para aplicaciones altamente visuales, tales como los que utilizan la perspectiva en primera persona, así como vistas en 3D y modelado.

- -

Por ejemplo, puedes crear aplicaciones que permiten a los usuarios controlar el ángulo de visión con sólo mover el mouse sin ningún clic, permitiendo liberar los clics para otras acciones. Este tipo de entrada del mouse es muy útil para ver mapas, imágenes de satélite, o escenas en primera persona (como en un juego o un vídeo embebido).

- -

Pointer Lock te permite acceder a los eventos del mouse incluso cuando el cursor pasa por el límite de la pantalla del navegador. Por ejemplo, los usuarios pueden seguir girando o manipular un modelo 3D moviendo el mouse sin fin. Sin Pointer Lock, la rotación o la manipulación se detiene en el momento en que el cursor alcanza el borde de la pantalla del navegador. Los jugadores se verán particularmente encantados con esta característica, ya que anciosamente pueden hacer clic en los botones y arrastrar el cursor del mouse de un lado a otro sin tener que preocuparse por salir de la zona de juego ni de cliquear accidentalmente otra aplicación que podría llevar al mouse fuera del juego. Una tragedia!

- -

Conceptos Básicos

- -

Pointer Lock está relacionado con la mouse capturemouse capture proporciona la entrega continua de eventos a un elemento de destino, mientras que el mouse se arrastra, pero se detiene cuando se suelta el clic. Pointer Lock es diferente de mouse capture en las siguientes maneras:

- - - -

Ejemplo

- -

El siguiente es un ejemplo de cómo se puede configurar Pointer Lock en su página web.

- -
<button onclick="lockPointer();">Lock it!</button>
-<div id="pointer-lock-element"></div>
-<script>
-// Nota: Al momento de escribir esto, sólo Mozilla y WebKit apoyan Pointer Lock.
-
-// El elemento que servirá para pantalla completa y pointer lock.
-var elem;
-
-document.addEventListener("mousemove", function(e) {
-  var movementX = e.movementX       ||
-                  e.mozMovementX    ||
-                  e.webkitMovementX ||
-                  0,
-      movementY = e.movementY       ||
-                  e.mozMovementY    ||
-                  e.webkitMovementY ||
-                  0;
-
-  // Imprime los valores delta del movimiento del mouse
-  console.log("movementX=" + movementX, "movementY=" + movementY);
-}, false);
-
-function fullscreenChange() {
-  if (document.webkitFullscreenElement === elem ||
-      document.mozFullscreenElement === elem ||
-      document.mozFullScreenElement === elem) { // Older API upper case 'S'.
-    // El elemento esta en pantalla completa, ahora podemos hacer el request de pointer lock
-    elem.requestPointerLock = elem.requestPointerLock    ||
-                              elem.mozRequestPointerLock ||
-                              elem.webkitRequestPointerLock;
-    elem.requestPointerLock();
-  }
-}
-
-document.addEventListener('fullscreenchange', fullscreenChange, false);
-document.addEventListener('mozfullscreenchange', fullscreenChange, false);
-document.addEventListener('webkitfullscreenchange', fullscreenChange, false);
-
-function pointerLockChange() {
-  if (document.mozPointerLockElement === elem ||
-      document.webkitPointerLockElement === elem) {
-    console.log("Pointer Lock was successful.");
-  } else {
-    console.log("Pointer Lock was lost.");
-  }
-}
-
-document.addEventListener('pointerlockchange', pointerLockChange, false);
-document.addEventListener('mozpointerlockchange', pointerLockChange, false);
-document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
-
-function pointerLockError() {
-  console.log("Error while locking pointer.");
-}
-
-document.addEventListener('pointerlockerror', pointerLockError, false);
-document.addEventListener('mozpointerlockerror', pointerLockError, false);
-document.addEventListener('webkitpointerlockerror', pointerLockError, false);
-
-function lockPointer() {
-  elem = document.getElementById("pointer-lock-element");
-  // Start by going fullscreen with the element.  Current implementations
-  // require the element to be in fullscreen before requesting pointer
-  // lock--something that will likely change in the future.
-  elem.requestFullscreen = elem.requestFullscreen    ||
-                           elem.mozRequestFullscreen ||
-                           elem.mozRequestFullScreen || // Older API upper case 'S'.
-                           elem.webkitRequestFullscreen;
-  elem.requestFullscreen();
-}
-</script>
-
- -

Propiedades/Métodos

- -

La API de bloque de puntero ,similar a la API de Fullscreen,extiende del elemento DOM agregando un nuevo método, requestPointerLock, la cual es dependiente del vendedor(del navegador). Puede escribirse como:

- -
element.webkitRequestPointerLock(); // para Chrome
-
-element.mozRequestPointerLock(); // para Firefox
-
- -

Current implementations of requestPointerLock are tightly bound to requestFullScreen and the Fullscreen API. Before an element can be pointer locked, it must first enter the fullscreen state. As demonstrated above, the process of locking the pointer is asynchronous, with events (pointerlockchange, pointerlockerror) indicating the success or failure of the request. This matches how the Fullscreen API works, with its requestFullScreen method and fullscreenchange and fullscreenerror events.

- -

The Pointer lock API also extends the document interface, adding both a new property and a new method. The new property is used for accessing the currently locked element (if any), and is named pointerLockElement, which is vendor-prefixed for now. The new method on document is exitPointerLock and, as the name implies, it is used to exit Pointer lock.

- -

The pointerLockElement property is useful for determining if any element is currently pointer locked (e.g., for doing a boolean check) and also for obtaining a reference to the locked element, if any. Here is an example of both uses:

- -
document.pointerLockElement = document.pointerLockElement    ||
-                              document.mozPointerLockElement ||
-                              document.webkitPointerLockElement;
-
-// 1) Used as a boolean check--are we pointer locked?
-if (!!document.pointerLockElement) {
-  // pointer is locked
-} else {
-  // pointer is not locked
-}
-
-// 2) Used to access the pointer locked element
-if (document.pointerLockElement === someElement) {
-  // someElement is currently pointer locked
-}
-
- -

The document's exitPointerLock method is used to exit pointer lock, and like requestPointerLock, works asynchrounously using the pointerlockchange and pointerlockerror events:

- -
document.exitPointerLock = document.exitPointerLock    ||
-                           document.mozExitPointerLock ||
-                           document.webkitExitPointerLock;
-
-function pointerLockChange() {
-  document.pointerLockElement = document.pointerLockElement    ||
-                                document.mozPointerLockElement ||
-                                document.webkitPointerLockElement;
-
-  if (!!document.pointerLockElement) {
-    console.log("Still locked.");
-  } else {
-    console.log("Exited lock.");
-  }
-}
-
-document.addEventListener('pointerlockchange', pointerLockChange, false);
-document.addEventListener('mozpointerlockchange', pointerLockChange, false);
-document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
-
-// Attempt to unlock
-document.exitPointerLock();
-
- -

pointerlockchange event

- -

When the Pointer lock state changes—for example, when calling requestPointerLock, exitPointerLock, the user pressing the ESC key, etc.—the pointerlockchange event is dispatched to the document. This is a simple event and contains no extra data.

- -
This event is currently prefixed as mozpointerlockchange in Firefox and webkitpointerlockchange in Chrome. 
- -

pointerlockerror event

- -

When there is an error caused by calling requestPointerLock or exitPointerLock, the pointerlockerror event is dispatched to the document. This is a simple event and contains no extra data.

- -
This event is currently prefixed as mozpointerlockerror in Firefox and webkitpointerlockerror in Chrome. 
- -

Extensions to mouse events

- -

The Pointer lock API extends the normal MouseEvent with movement attributes.

- -
partial interface MouseEvent {
-    readonly attribute long movementX;
-    readonly attribute long movementY;
-};
- -
The movement attributes are currently prefixed as .mozMovementX and .mozMovementY in Firefox, and.webkitMovementX and .webkitMovementY in Chrome.
- -

Two new parameters to mouse events—movementX and movementY—provide the change in mouse positions. The values of the parameters are the same as the difference between the values of MouseEvent properties, screenX and screenY, which are stored in two subsequent mousemove events, eNow and ePrevious. In other words, the Pointer lock parameter movementX = eNow.screenX - ePrevious.screenX.

- -

Locked state

- -

When Pointer lock is enabled, the standard MouseEvent properties clientX, clientY, screenX, and screenY are held constant, as if the mouse is not moving. The movementX and movementY properties continue to provide the mouse's change in position. There is no limit to movementX and movementY values if the mouse is continuously moving in a single direction. The concept of the mouse cursor does not exist and the cursor cannot move off the window or be clamped by a screen edge.

- -

Unlocked state

- -

The parameters movementX and movementY are valid regardless of the mouse lock state, and are available even when unlocked for convenience.

- -

When the mouse is unlocked, the system cursor can exit and re-enter the browser window. If that happens, movementX and movementY could be set to zero.

- -

iframe limitations

- -

Pointer lock can only lock one iframe at a time. If you lock one iframe, you cannot try to lock another iframe and transfer the target to it; Pointer lock will error out. To avoid this limitation, first unlock the locked iframe, and then lock the other.

- -

While iframes work by default, "sandboxed" iframes block Pointer lock. The ability to avoid this limitation, in the form of the attribute/value combination <iframe sandbox="allow-pointer-lock">, is expected to appear in Chrome soon.

- -

Specifications

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Pointer Lock')}}{{Spec2('Pointer Lock')}}Initial specification.
- -

Browser compatibility

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support -

Targeting 23{{ property_prefix("webkit") }}*

- -

See CR/72574

-
-

{{ CompatGeckoDesktop("14.0") }}

- -

{{bug("633602") }}

-
{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -

* Requires the feature be enabled in about:flags or Chrome started with the --enable-pointer-lock flag.

- -

See also

- -

MouseEvent

diff --git a/files/es/webapi/using_geolocation/index.html b/files/es/webapi/using_geolocation/index.html deleted file mode 100644 index 6d50972f8b..0000000000 --- a/files/es/webapi/using_geolocation/index.html +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: Uso de geolocalización -slug: WebAPI/Using_geolocation -tags: - - API - - Geolocalización - - Guía - - clearWatch - - watchPosition -translation_of: Web/API/Geolocation_API ---- -

{{securecontext_header}}{{APIRef("Geolocation API")}}

- -

La API de geolocalización permite al usuario compartir su ubicación a las aplicaciones web si así lo desea. Por razones de privacidad, al usuario se le pide que confirme el permiso para proporcionar información de ubicación.

- -

El objeto geolocation

- -

La API de geolocalización se publica a través del objeto {{domxref("window.navigator.geolocation","navigator.geolocation")}}.

- -

Si el objeto existe, los servicios de geolocalización están disponibles. Se puede comprobar la presencia de la geolocalización de esta manera:

- -
if ("geolocation" in navigator) {
-  /* la geolocalización está disponible */
-} else {
-  /* la geolocalización NO está disponible */
-}
-
- -
-

Nota: En Firefox 24 y versiones anteriores, "geolocation" in navigator siempre retornaba true incluso si la API se encontraba deshabilitada. Esto ha sido corregido en Firefox 25 para cumplir con la especificación.  ({{bug(884921)}}).

-
- -

Obtención de la ubicación actual

- -

Para obtener la ubicación actual del usuario, puede llamar al método {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}.

- -

Esto inicia una solicitud asíncrona para detectar la posición del usuario, y consulta el hardware de posicionamiento para obtener información actualizada. Cuando se determina la posición, se ejecuta la función de callback. Si lo desea, puede proporcionar otra función de callback que se ejecuta si se produce un error. Un tercer parámetro opcional, es un objeto de opciones donde se puede establecer la edad máxima de la posición devuelta, el tiempo de espera para una solicitud y si se requiere una alta precisión para la posición.

- -
-

Nota: Por defecto, {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}} intenta responder tan rápido como sea posible con un resultado de baja precisión. Es útil cuando se necesita una respuesta rápida sin importar su exactitud. A los dispositivos con GPS, por ejemplo, les puede tomar más de un minuto obtener una posición, por lo que datos menos precisos (localización por IP o wifi) pueden ser devueltos por {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}.

-
- -
navigator.geolocation.getCurrentPosition(function(position) {
-  haz_algo(position.coords.latitude, position.coords.longitude);
-});
- -

En el ejemplo anterior la función do_something() será ejecutada una vez que se obtiene la posición.

- -

Rastreando la posición actual

- -

Si los datos de ubicación cambian (si el dispositivo se mueve o información geográfica más precisa es recibida), puede definir una función de callback que se ejecuta al cambiar la posición. Esto se logra a través de la función {{domxref("window.navigator.geolocation.watchPosition()","watchPosition()")}}, que recibe los mismos parámetros que {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}. La función de callback es ejecutada varias veces, permitiendo al navegador actualizar la ubicación cada vez que cambia, o proporcionar una posición con mayor exactitud utilizando distintas técnicas de geolocalización. La función de callback de error, la cual es opcional como en {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}, es llamada solo una vez, cuando nunca serán devueltos resultados correctos.

- -
-

Nota: Es posible usar la función {{domxref("window.navigator.geolocation.watchPosition()","watchPosition()")}} sin haber ejecutado antes {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}.

-
- -
var watchID = navigator.geolocation.watchPosition(function(position) {
-  do_something(position.coords.latitude, position.coords.longitude);
-});
- -

El método {{domxref("window.navigator.geolocation.watchPosition()","watchPosition()")}} devuelve un número que se utiliza para identificar el rastreador de posición solicitado; este valor se utiliza junto con el método {{domxref("window.navigator.geolocation.clearWatch()","clearWatch()")}} para dejar de rastrear la posición del usuario.

- -
navigator.geolocation.clearWatch(watchID);
-
- -

Afinando la respuesta

- -

Ambos métodos,  {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}} y {{domxref("window.navigator.geolocation.watchPosition()","watchPosition()")}} aceptan una función de callback en caso de éxito, una función callback opcional si ocurre algún error, y un objeto PositionOptions también opcional.

- -

{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","PositionOptions")}}

- -

Una llamada a {{domxref("window.navigator.geolocation.watchPosition()","watchPosition")}} luce como el siguiente ejemplo:

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

Demo de watchPosition: http://www.thedotproduct.org/experiments/geo/
- 

- -

Describiendo una posición

- -

La ubicación del usuario es descrita con un objeto Position referenciando a un objeto Coordinates.

- -

{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","Position")}}

- -

{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","Coordinates")}}

- -

Manejo de errores

- -

La función de callback de error, si existe cuando se llama a getCurrentPosition() o watchPosition(), recibe un objeto  PositionError como su primer parámetro.

- -
function errorCallback(error) {
-  alert('ERROR(' + error.code + '): ' + error.message);
-};
-
- -

{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","PositionError")}}

- -

Ejemplo de geolocalización

- - - -

Contenido HTML

- -
<p><button onclick="geoFindMe()">Show my location</button></p>
-<div id="out"></div>
-
- -

Contenido JavaScript

- -
function geoFindMe() {
-  var output = document.getElementById("out");
-
-  if (!navigator.geolocation){
-    output.innerHTML = "<p>Geolocation is not supported by your browser</p>";
-    return;
-  }
-
-  function success(position) {
-    var latitude  = position.coords.latitude;
-    var longitude = position.coords.longitude;
-
-    output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>';
-
-    var img = new Image();
-    img.src = "http://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=13&size=300x300&sensor=false";
-
-    output.appendChild(img);
-  };
-
-  function error() {
-    output.innerHTML = "Unable to retrieve your location";
-  };
-
-  output.innerHTML = "<p>Locating…</p>";
-
-  navigator.geolocation.getCurrentPosition(success, error);
-}
-
- -

Resultado

- -

{{ EmbedLiveSample('Geolocation_Live_Example',350,410) }}

- -

Compatibilidad entre navegadores

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
CaracterísticaChromeFirefox (Gecko)Internet ExplorerOperaSafari
Soporte básico5{{CompatGeckoDesktop("1.9.1")}}910.605
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Soporte básico{{CompatUnknown()}}{{CompatUnknown()}}{{CompatGeckoMobile("4")}}{{CompatUnknown()}}10.60{{CompatUnknown()}}
-
- -

Notas sobre Gecko

- -

Firefox incluye soporte para localizar basándose en información de redes inalámbricas, usando Google Location Services. En la transacción entre Firefox y Google, los datos son compartidos incluyendo información del punto de acceso inalámbrico, un token de acceso (similar a una cookie con duración de dos semanas), y la dirección IP del usuario. Para más información, por favor consulte la Política de Privacidad de Mozilla y la Política de Privacidad de Google, dichos documentos cubren como estos datos pueden ser utilizados.

- -

En Firefox 3.6 (Gecko 1.9.2) fue añadido soporte para utilizar el servicio GPSD para geolocalización en sistemas Linux.

- -

Consultar también

- - - -

 

-- cgit v1.2.3-54-g00ecf