我已经注意到很多关于如何根据IP地址使用Google地理位置查找您的位置的信息.但我想知道是否以及如何使用此服务输入位置(经度和纬度)并返回当前地址,或至少是一个城市,州.
我想在C#中这样做,但我会使用任何语言.
有什么建议?
我正在使用以下代码,但如何从经度和纬度获取城市名称或位置名称?
var x=document.getElementById("location");
function getLocation()
{
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else {
x.innerHTML="Geolocation is not supported by this browser.";
}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
Run Code Online (Sandbox Code Playgroud) 我正试图从google json获取$ street,$ city和$ country字符串.它适用于我的家庭住址:http: //maps.googleapis.com/maps/api/geocode/json ?latlng = 52.108662,6.307370 &sensor = true
$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=".$lat.",".$lng."&sensor=true";
$data = @file_get_contents($url);
$jsondata = json_decode($data,true);
if(is_array($jsondata) && $jsondata['status'] == "OK")
{
$city = $jsondata['results']['0']['address_components']['2']['long_name'];
$country = $jsondata['results']['0']['address_components']['5']['long_name'];
$street = $jsondata['results']['0']['address_components']['1']['long_name'];
}
Run Code Online (Sandbox Code Playgroud)
但对于具有更多数据的不同地址,如下例所示:http: //maps.googleapis.com/maps/api/geocode/json?lalng = 52.154184,6.199592&sensor = true 它不起作用,因为有json数组中的更多数据,它使该省成为国家.
如何选择我需要的类型(long_name)?
地理编码JSON的示例输出:
{
"results" : [
{
"address_components" : [
{
"long_name" : "89",
"short_name" : "89",
"types" : [ "street_number" ]
},
{
"long_name" …Run Code Online (Sandbox Code Playgroud)