我如何从中获取城市名称?
How do I get the city name out of this?
我在 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&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");
}
您可以查看以下内容 fiddle 以查看实际效果:
+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");
这样可以提供更多信息。太感谢了。我想知道(如果可能的话)我在哪里可以阅读或知道如何获取特定答案,我读到当你得到结果时,它 returns 不止一个结果。我按照你提到的更改了数字,测试了不同的选项。但是,有什么地方可以查找这些结果吗?请原谅,我是新手。
我在 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&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");
}
您可以查看以下内容 fiddle 以查看实际效果:
+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");
这样可以提供更多信息。太感谢了。我想知道(如果可能的话)我在哪里可以阅读或知道如何获取特定答案,我读到当你得到结果时,它 returns 不止一个结果。我按照你提到的更改了数字,测试了不同的选项。但是,有什么地方可以查找这些结果吗?请原谅,我是新手。