usuario una ubicacion sistema posición pagina obtener hacer geolocalizacion geografica exacta datos cómo con calcula bases app javascript geolocation

javascript - una - sistema de geolocalizacion php



¿Cómo obtener la ubicación del visitante(es decir, el país) utilizando la geolocalización? (9)

Estoy tratando de ampliar la función de geolocalización nativa

if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; }); }

para que pueda usar el nombre del país del visitante (quizás devuelva una matriz informativa).

Hasta ahora, todo lo que he podido encontrar son funciones que muestran una interfaz de google maps, pero ninguna realmente me dio lo que quería, a excepción de esta biblioteca que funcionaba bien en este ejemplo pero que por alguna razón no funcionaba en mi computadora. No estoy seguro de por qué eso salió mal allí.

De todos modos, ¿sabes cómo puedo simplemente devolver un conjunto que contiene información como país, ciudad, etc. de valores de latitud y longitud?


No necesita ubicar al usuario si solo necesita su país. Puede buscar su dirección IP en cualquier servicio de IP a ubicación (como maxmind ). Esto será preciso la mayor parte del tiempo.

Si realmente necesita obtener su ubicación, puede obtener su lat / lng con ese método, luego consultar Google''s servicio de geocodificación inversa de Google''s o Yahoo''s .


Para los desarrolladores que buscan una utilidad de geolocalización con todas las funciones, puedes echar un vistazo a geolocator.js (soy el autor).

El siguiente ejemplo primero probará la API de geolocalización HTML5 para obtener las coordenadas exactas. Si falla o es rechazado, se recurrirá a la búsqueda Geo-IP. Una vez que obtiene las coordenadas, geocodificará las coordenadas en una dirección.

var options = { enableHighAccuracy: true, timeout: 6000, maximumAge: 0, desiredAccuracy: 30, fallbackToIP: true, // if HTML5 geolocation fails or rejected addressLookup: true, // get detailed address information timezone: true, map: "my-map" // this will even create a map for you }; geolocator.locate(options, function (err, location) { console.log(err || location); });

Admite la ubicación geográfica (a través de búsquedas HTML5 o IP), geocodificación, búsquedas de dirección (geocodificación inversa), distancia y duraciones, información de zona horaria y más ...


Puede usar ip-api.io para obtener la ubicación del visitante. Es compatible con IPv6.

Como una bonificación, permite comprobar si la dirección IP es un nodo tor, un proxy público o un spammer.

Código de JavaScript:

function getIPDetails() { var ipAddress = document.getElementById("txtIP").value; var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { console.log(JSON.parse(xhttp.responseText)); } }; xhttp.open("GET", "http://ip-api.io/json/" + ipAddress, true); xhttp.send(); } <input type="text" id="txtIP" placeholder="Enter the ip address" /> <button onclick="getIPDetails()">Get IP Details</button>

Código jQuery:

$(document).ready(function () { $(''#btnGetIpDetail'').click(function () { if ($(''#txtIP'').val() == '''') { alert(''IP address is reqired''); return false; } $.getJSON("http://ip-api.io/json/" + $(''#txtIP'').val(), function (result) { alert(''Country Name: '' + result.country_name) console.log(result); }); }); }); <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <div> <input type="text" id="txtIP" /> <button id="btnGetIpDetail">Get Location of IP</button> </div>


Puede usar su dirección IP para obtener su ''país'', ''ciudad'', ''isp'', etc.
Solo use uno de los servicios web que le proporcionan una API sencilla como http://ip-api.com que le ofrece un servicio JSON en http://ip-api.com/json . Simple envía una solicitud Ajax (o Xhr) y luego analiza el JSON para obtener los datos que necesites.

var requestUrl = "http://ip-api.com/json"; $.ajax({ url: requestUrl, type: ''GET'', success: function(json) { console.log("My country is: " + json.country); }, error: function(err) { console.log("Request failed, error= " + err); } });


Puedes usar mi servicio, http://ipinfo.io , para esto. Le dará la IP del cliente, nombre de host, información de geolocalización (ciudad, región, país, código de área, código postal, etc.) y propietario de la red. Aquí hay un ejemplo simple que registra la ciudad y el país:

$.get("https://ipinfo.io", function(response) { console.log(response.city, response.country); }, "jsonp");

Aquí hay un ejemplo más detallado de JSFiddle que también imprime la información de respuesta completa, para que pueda ver todos los detalles disponibles: http://jsfiddle.net/zK5FN/2/

La ubicación generalmente será menos precisa que los detalles de geolocalización nativa, pero no requiere ningún permiso del usuario.


Un servicio gratuito y fácil de usar se proporciona en Webtechriser (haga clic aquí para leer el artículo) (llamado wipmania ). Este es un servicio JSONP y requiere una codificación simple de JavaScript con HTML . También se puede usar en JQuery . Modifiqué un poco el código para cambiar el formato de salida y esto es lo que he usado y encontré que funciona: (es el código de mi página HTML)

<html> <body> <p id="loc"></p> <script type="text/javascript"> var a = document.getElementById("loc"); function jsonpCallback(data) { a.innerHTML = "Latitude: " + data.latitude + "<br/>Longitude: " + data.longitude + "<br/>Country: " + data.address.country; } </script> <script src="http://api.wipmania.com/jsonp?callback=jsonpCallback" type="text/javascript"></script> </body> </html>

TEN EN CUENTA: Este servicio obtiene la ubicación del visitante sin pedirle al visitante que elija si desea compartir su ubicación, a diferencia de la API de geolocalización de HTML 5 (el código que has escrito). Por lo tanto, la privacidad está comprometida. Por lo tanto, debe hacer un uso judicial de este servicio.


Un servicio muy fácil de usar es provisto por ws.geonames.org . Aquí hay una URL de ejemplo:

http://ws.geonames.org/countryCode?lat=43.7534932&lng=28.5743187&type=JSON

Y aquí hay un código (jQuery) que he agregado a tu código:

if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { $.getJSON(''http://ws.geonames.org/countryCode'', { lat: position.coords.latitude, lng: position.coords.longitude, type: ''JSON'' }, function(result) { alert(''Country: '' + result.countryName + ''/n'' + ''Code: '' + result.countryCode); }); }); }​

Pruébalo en jsfiddle.net ...


Ver ipdata.co, un servicio que creé que es extremadamente escalable con 10 puntos finales globales, cada uno capaz de manejar> 800M diarios.

Este fragmento devolverá los detalles de su IP actual . Para buscar otras direcciones IP, simplemente agregue la dirección IP a la URL https://api.ipdata.co, por ejemplo.

https://api.ipdata.co/1.1.1.1

La API también proporciona un campo is_eu indica si el usuario se encuentra en un país de la UE.

$.get("https://api.ipdata.co", function (response) { $("#response").html(JSON.stringify(response, null, 4)); }, "jsonp");

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <pre id="response"></pre>

Aquí está el violín; jsfiddle.net/6wtf0q4g

También escribí this análisis detallado de 8 de las mejores API de geolocalización de IP.


no puedes obtener la ubicación de la ciudad por ip. aquí puedes obtener el país con jquery:

$.get("http://ip-api.com/json", function(response) { console.log(response.country);}, "jsonp");