我该如何从中获得城市名称

How do I get the city name out of this?

本文关键字:城市      更新时间:2023-09-26

我将其保存在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。我不想要地图,只想要信息,它可以是文本或警报。有什么想法吗?

您可以使用反向地理编码API

示例调用:

http://maps.googleapis.com/maps/api/geocode/json?latlng=50.123413,-22.12345&传感器=真实

您可以这样替换getLocation函数(在访问数据之前进行适当的测试。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/

+Nowres Rafted我稍微修改了一下你的代码:

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

它通过这种方式提供了更多的信息。非常感谢。我想知道的是(如果可能的话)我在哪里可以阅读或知道如何获取特定的答案,我读到当你得到结果时,它会返回多个结果。正如你提到的,我更改了号码,测试了不同的选项。但是,有什么地方可以让我去寻找这些结果吗?请原谅我的麻烦,我只是个新手。