2016-04-18 3 views
0

Я hhave это в HTMLКак мне получить название города?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Geolocation</title> 
<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script> 
<script src="funciones.js"></script> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
</head> 
<body> 
<button id="startGeo">Click here to check your geolocation abilities</button> 
</body> 
</html> 

и у меня есть это в function.js файле:

$(document).ready(function(){ 
$("#startGeo").click(checkLocation); 

function checkLocation(){ 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(getLocation,locationFailed); 
     //document.write("you have geolocation"); 
    } 
    else { 
     document.write("you don't have geolocation"); 
    } 
}//ends checkLocation() 

function getLocation(position){ 
    var latitud = position.coords.latitude; 
    var longitud = position.coords.longitude; 
    var exactitud = position.coords.accuracy; 

    alert("latitud: " + latitud + " longitud: " + longitud + " exactitud: " + exactitud); 
    //document.write("we received your location"); 
} 
function locationFailed(){ 
    document.write("we didn't get your location. Please check your settings"); 
} 
}); 

от этого я получаю координаты, но я понятия не имею, вообще о том, как получить название города ... или имя штата. Я видел вопрос, подобный этому, но они, похоже, использовали json. Мне не нужна карта, просто информация, это может быть текст или предупреждение. Пожалуйста, какие-нибудь идеи?

ответ

0

Вы можете использовать обратный API геокодирования

Пример вызова:

http://maps.googleapis.com/maps/api/geocode/json?latlng=50.123413,-22.12345&sensor=true

Вы можете заменить функцию getLocation как это (сделать соответствующие тесты перед обращением data.results [2]):

function getLocation(position){ 
    var latitud = position.coords.latitude; 
    var longitud = position.coords.longitude; 
    var exactitud = position.coords.accuracy; 

    $.get('https://maps.googleapis.com/maps/api/geocode/json?latlng=' + latitud + ',' + longitud + '&sensor=true', function(data) { 
     alert(data.results[2].address_components[0].long_name); 
    }); 

    //alert("latitud: " + latitud + " longitud: " + longitud + " exactitud: " + exactitud); 
    //document.write("we received your location"); 
} 

Вы можете проверить следующий скрипт, чтобы увидеть его в действии:

https://jsfiddle.net/5tzxks10/

+0

Большое вам спасибо за это. действительно, благодаря вашей помощи я получаю информацию, но не тот, она дает мне адрес, который я не знаю. Возможно, это проблема с json в api? Я запускал другие коды, и это дает мне разные места в зависимости от используемого браузера. Интересно, может ли это иметь какое-то отношение к данным. Результаты [2]. Если это так, как я могу узнать, какой из них использовать? –

+0

Действительно, это зависит от результатов данных. [2] Я ставлю здесь 2 как пример –

+0

. Обратитесь к документации по API, чтобы узнать лучше об ответе: –

0

+ Nowres Rafed Я изменил код немного:

function getLocation(position){ 
var latitud = position.coords.latitude; 
var longitud = position.coords.longitude; 
var exactitud = position.coords.accuracy; 

$.get('https://maps.googleapis.com/maps/api/geocode/json?latlng=' + latitud + ',' + longitud, function(data) { 
    alert(data.results[1].formatted_address); 
}); 

//alert("latitud: " + latitud + " longitud: " + longitud + " exactitud: " + exactitud); 
//document.write("we received your location"); 

это дает больше информации, что путь. Огромное спасибо. То, что я хотел бы знать (если это возможно), где я могу прочитать или узнать, как получить конкретный ответ, я прочитал, что когда вы получаете результаты, он возвращает более одного результата. Я изменил номер, как вы упомянули, проверив различные варианты. Но где я могу найти эти результаты? простите, я просто не знаком с этим.

Смежные вопросы