diff options
author | Juan Vásquez <juan@logicalbricks.com> | 2022-03-19 19:07:23 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-19 21:07:23 -0400 |
commit | 48938baf9e3963a2bc2ff7d26f227842c4ea2554 (patch) | |
tree | 47e79b2cfb0437b35c10c1ec26e52f4ac8a9bb3e | |
parent | 51af369340576bee7073830bbb805103b2349b61 (diff) | |
download | translated-content-48938baf9e3963a2bc2ff7d26f227842c4ea2554.tar.gz translated-content-48938baf9e3963a2bc2ff7d26f227842c4ea2554.tar.bz2 translated-content-48938baf9e3963a2bc2ff7d26f227842c4ea2554.zip |
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>
-rw-r--r-- | files/es/web/api/geolocation_api/index.html | 175 | ||||
-rw-r--r-- | files/es/web/api/geolocation_api/index.md | 71 |
2 files changed, 71 insertions, 175 deletions
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 ---- -<p>{{securecontext_header}}{{APIRef("Geolocation API")}}</p> - -<p><span id="result_box" lang="es"><span class="hps">La</span> <strong><span class="hps">API de geolocalización</span></strong> <span class="hps">permite al</span> <span class="hps">usuario compartir su</span> <span class="hps">ubicación</span> <span class="hps">a las aplicaciones web</span> <span class="hps">si</span> <span class="hps">así lo desea.</span> <span class="hps">Por razones de privacidad</span><span>,</span> <span class="hps">al usuario</span> <span class="hps">se le pide que</span> <span class="hps">confirme el permiso</span> <span class="hps">para proporcionar información</span> <span class="hps">de ubicación.</span></span></p> - -<h2 id="El_objeto_geolocation">El objeto geolocation</h2> - -<p><span id="result_box" lang="es"><span class="hps">La API</span> <span class="hps">de geolocalización</span> <span class="hps">se publica</span> <span class="hps">a través del objeto </span></span>{{domxref("window.navigator.geolocation","navigator.geolocation")}}.</p> - -<p><span id="result_box" lang="es"><span class="hps">Si el objeto existe</span><span>,</span> <span class="hps">los servicios de geolocalización</span> <span class="hps">están disponibles.</span> <span class="hps">Se puede</span> <span class="hps">comprobar la presencia</span> <span class="hps">de la geolocalización</span> <span class="hps">de esta manera:</span></span></p> - -<pre class="brush: js">if ("geolocation" in navigator) { - /* la geolocalización está disponible */ -} else { - /* la geolocalización NO está disponible */ -} -</pre> - -<h3 id="Obtención_de_la_ubicación_actual">Obtención de la ubicación actual</h3> - -<p><span lang="es"><span class="hps">Para</span> <span class="hps">obtener la ubicación</span> <span class="hps">actual del usuario</span><span>, puede llamar a</span><span class="atn hps">l método </span></span>{{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}<span lang="es"><span class="hps">.</span></span></p> - -<p><span lang="es"><span class="hps">Esto inicia</span> <span class="hps">una solicitud asíncrona</span> <span class="hps">para detectar</span> <span class="hps">la posición del usuario</span><span>, y</span> <span class="hps">consulta el</span> <span class="hps">hardware</span> <span class="hps">de posicionamiento para</span> <span class="hps">obtener</span><span class="hps"> información actualizada.</span> </span><span id="result_box" lang="es"><span class="hps">Cuando</span> <span class="hps">se determina la posición</span><span>, se ejecuta la función</span> <span class="hps">de callback</span><span class="hps">.</span></span><span lang="es"> <span class="hps">Si lo desea,</span> <span class="hps">puede proporcionar otra función de callback</span><span class="hps"> que se</span> <span class="hps">ejecuta si</span> <span class="hps">se produce un error</span><span>.</span> <span class="hps">Un tercer</span> <span class="hps">parámetro</span> <span class="hps">opcional</span><span>, es un</span> <span class="hps">objeto de opciones</span> <span class="hps">donde se puede establecer</span> <span class="hps">la edad máxima de</span> <span class="hps">la</span> <span class="hps">posición devuelta</span><span>,</span> <span class="hps">el tiempo de espera</span> <span class="hps">para una solicitud</span> <span class="hps">y si se requiere</span> <span class="hps">una alta precisión</span> <span class="hps">para la posición.</span></span></p> - -<div class="note"> -<p><strong>Nota:</strong> 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()")}}.</p> -</div> - -<pre class="brush: js">navigator.geolocation.getCurrentPosition(function(position) { - haz_algo(position.coords.latitude, position.coords.longitude); -});</pre> - -<p>En el ejemplo anterior la función do_something() será ejecutada una vez que se obtiene la posición.</p> - -<h3 id="Rastreando_la_posición_actual">Rastreando la posición actual</h3> - -<p>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.</p> - -<div class="note"> -<p><strong>Nota:</strong> Es posible usar la función {{domxref("window.navigator.geolocation.watchPosition()","watchPosition()")}} sin haber ejecutado antes {{domxref("window.navigator.geolocation.getCurrentPosition()","getCurrentPosition()")}}.</p> -</div> - -<pre class="brush: js">var watchID = navigator.geolocation.watchPosition(function(position) { - do_something(position.coords.latitude, position.coords.longitude); -});</pre> - -<p>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.</p> - -<pre class="brush: js">navigator.geolocation.clearWatch(watchID); -</pre> - -<h3 id="Afinando_la_respuesta">Afinando la respuesta</h3> - -<p>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 <code>PositionOptions</code> también opcional.</p> - -<p>{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","PositionOptions")}}</p> - -<p>Una llamada a {{domxref("window.navigator.geolocation.watchPosition()","watchPosition")}} luce como el siguiente ejemplo:</p> - -<pre class="brush: js">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);</pre> - -<p><a id="fck_paste_padding">Demo de watchPosition: </a><a class="external" href="http://www.thedotproduct.org/experiments/geo/">http://www.thedotproduct.org/experiments/geo/</a><br> - <a id="fck_paste_padding"></a></p> - -<h2 id="Describiendo_una_posición">Describiendo una posición</h2> - -<p>La ubicación del usuario es descrita con un objeto <code>Position</code> referenciando a un objeto <code>Coordinates</code>.</p> - -<p>{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","Position")}}</p> - -<p>{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","Coordinates")}}</p> - -<h2 id="Manejo_de_errores">Manejo de errores</h2> - -<p>La función de callback de error, si existe cuando se llama a <code>getCurrentPosition()</code> o <code>watchPosition()</code>, recibe un objeto <code>PositionError</code> como su primer parámetro.</p> - -<pre class="brush: js">function errorCallback(error) { - alert('ERROR(' + error.code + '): ' + error.message); -}; -</pre> - -<p>{{page("/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition","PositionError")}}</p> - -<h2 id="Ejemplo_de_geolocalización">Ejemplo de geolocalización</h2> - -<div class="hidden"> -<pre class="brush: css">body { - padding: 20px; - background-color:#ffffc9 -} - -p { margin : 0; } -</pre> -</div> - -<h3 id="Contenido_HTML">Contenido HTML</h3> - -<pre class="brush: html;"><p><button onclick="geoFindMe()">Show my location</button></p> -<div id="out"></div> -</pre> - -<h3 id="Contenido_JavaScript">Contenido JavaScript</h3> - -<pre class="brush: js;">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); -} -</pre> - -<h3 id="Resultado">Resultado</h3> - -<p>{{ EmbedLiveSample('Geolocation_Live_Example',350,410) }}</p> - -<h2 id="Compatibilidad_entre_navegadores">Compatibilidad entre navegadores</h2> - -{{Compat("api.Geolocation")}} - -<h2 id="Consultar_también">Consultar también</h2> - -<ul> - <li>{{domxref("window.navigator.geolocation","navigator.geolocation")}}</li> - <li><a href="http://www.w3.org/TR/geolocation-API/">API de Geolocalización en w3.org</a></li> - <li><a href="/en-US/demos/tag/tech:geolocation" title="/en-US/demos/tag/tech:geolocation">Demos que utilizan la API de Geolocalización</a></li> -</ul> - -<p> </p> 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) + |