From 48938baf9e3963a2bc2ff7d26f227842c4ea2554 Mon Sep 17 00:00:00 2001 From: Juan Vásquez Date: Sat, 19 Mar 2022 19:07:23 -0600 Subject: 16. /es/docs/web/api/geolocation_api - [es] (#4509) * 16. /es/docs/web/api/geolocation_api - [es] Closes #3980 - [x] Change format from HTML to MD - [x] Sync content * David's suggestions Co-authored-by: David Brito <39559632+davbrito@users.noreply.github.com> Co-authored-by: David Brito <39559632+davbrito@users.noreply.github.com> --- files/es/web/api/geolocation_api/index.html | 175 ---------------------------- files/es/web/api/geolocation_api/index.md | 71 +++++++++++ 2 files changed, 71 insertions(+), 175 deletions(-) delete mode 100644 files/es/web/api/geolocation_api/index.html create mode 100644 files/es/web/api/geolocation_api/index.md diff --git a/files/es/web/api/geolocation_api/index.html b/files/es/web/api/geolocation_api/index.html deleted file mode 100644 index b2a95b03ac..0000000000 --- a/files/es/web/api/geolocation_api/index.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: Uso de geolocalización -slug: Web/API/Geolocation_API -tags: - - API - - Geolocalización - - Guía - - clearWatch - - watchPosition -translation_of: Web/API/Geolocation_API -original_slug: WebAPI/Using_geolocation ---- -

{{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 */
-}
-
- -

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

- -{{Compat("api.Geolocation")}} - -

Consultar también

- - - -

 

diff --git a/files/es/web/api/geolocation_api/index.md b/files/es/web/api/geolocation_api/index.md new file mode 100644 index 0000000000..4e00db5cc4 --- /dev/null +++ b/files/es/web/api/geolocation_api/index.md @@ -0,0 +1,71 @@ +--- +title: API de geolocalización +slug: Web/API/Geolocation_API +translation_of: Web/API/Geolocation_API +original_slug: WebAPI/Using_geolocation +--- +{{securecontext_header}}{{DefaultAPISidebar("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. + +Las `WebExtensions` que deseen utilizar el objeto `Geolocation` deben agregar el permiso `"geolocation"` a su manifiesto. +El sistema operativo del usuario le indicará que permita el acceso a la ubicación la primera vez que se solicite. + +## Conceptos y uso + +A menudo querrá recuperar la información de ubicación de un usuario en su aplicación web, +por ejemplo, para trazar su ubicación en un mapa o mostrar información personalizada relevante para su ubicación. + +Se accede a la API de geolocalización a través de una llamada a {{domxref("Navigator.geolocation", "navigator.geolocation")}}; +esto hará que el navegador del usuario le pida permiso para acceder a sus datos de ubicación. +Si aceptan, el navegador utilizará la mejor funcionalidad disponible en el dispositivo para acceder a esta información (por ejemplo, GPS). + +El desarrollador ahora puede acceder a esta información de ubicación de dos maneras diferentes: + +- {{domxref("Geolocation.getCurrentPosition()")}}: Recupera la ubicación actual del dispositivo. +- {{domxref("Geolocation.watchPosition()")}}: Registra una función de controlador que se llamará automáticamente cada vez que cambie la posición del dispositivo, devolviendo la ubicación actualizada. + +En ambos casos, la llamada al método toma hasta tres argumentos. + +- Una función obligatoria que será llamada en caso de éxito: si la recuperación de la ubicación es exitosa, la función se ejecuta con un objeto {{domxref("GeolocationPosition")}} como su único parámetro, proporcionando acceso a los datos de ubicación. +- Una función opcional que será llamada en caso de error: si la recuperación de la ubicación no tiene éxito, la función se ejecuta con un objeto {{domxref("GeolocationPositionError")}} como su único parámetro, proporcionando información de acceso sobre lo que salió mal. +- Un objeto opcional que proporciona opciones para la recuperación de los datos de posición. + +Para obtener más información sobre el uso de la geolocalización, lea [Uso de la API de geolocalización](/es/docs/Web/API/Geolocation_API/Using_the_Geolocation_API) + +## Interfaces + +- {{domxref("Geolocation")}} + - : La clase principal de esta API: contiene métodos para recuperar la posición actual del usuario, observar cambios en su posición y borrar una observación establecida previamente. +- {{domxref("GeolocationPosition")}} + - : Representa la posición de un usuario. Una instancia de `GeolocationPosition` es devuelta por una llamada exitosa a uno de los métodos contenidos dentro de {{domxref("Geolocation")}}, dentro de una devolución de llamada exitosa, y contiene una marca de tiempo más una instancia de objeto {{domxref("GeolocationCoordinates")}}. +- {{domxref("GeolocationCoordinates")}} + - : Representa las coordenadas de la posición de un usuario; una instancia de `GeolocationCoordinates` contiene latitud, longitud y otra información relacionada importante. +- {{domxref("GeolocationPositionError")}} + - : Un `GeolocationPositionError` es devuelto por una llamada fallida a uno de los métodos contenidos dentro de {{domxref("Geolocation")}}, dentro de una devolución de llamada de error, y contiene un código y un mensaje de error. +- {{domxref("Navigator.geolocation")}} + - : El punto de entrada a la API. Devuelve una instancia de objeto {{domxref("Geolocation")}}, desde la cual se puede acceder a todas las demás funciones. + +## Ejemplo + +Consulte [Uso de la API de geolocalización](/es/docs/Web/API/Geolocation_API/Using_the_Geolocation_API#examples) para obtener un código de ejemplo. + +## Especificaciones + +{{Specifications("api.Geolocation")}} + +## Compatibilidad con navegadores + +{{Compat("api.Geolocation")}} + +### Disponibilidad + +Dado que Google suele proporcionar la ubicación basada en Wi-Fi, es posible que la API _vanilla_ de Geolocalización no esté disponible en China. Puede utilizar proveedores externos locales como [Baidu](https://lbsyun.baidu.com/index.php?title=jspopular/guide/geolocation), [Autonavi](https://lbs.amap.com/api/javascript-api/guide/services/geolocation#geolocation), o [Tencent](https://lbs.qq.com/tool/component-geolocation.html). Estos servicios utilizan la dirección IP del usuario y/o una aplicación local para proporcionar un mejor posicionamiento. + +## Véase también + +- [Uso de la API de geolocalización](/es/docs/Web/API/Geolocation_API/Using_the_Geolocation_API) +- [API de geolocalización en w3.org](https://www.w3.org/TR/geolocation-API/) +- [¿Quién movió mi geolocalización?](https://hacks.mozilla.org/2013/10/who-moved-my-geolocation/) (Hacks blog) + -- cgit v1.2.3-54-g00ecf