使用Google GeoApi获取用户的城市和国家/地区信息

时间:2012-09-06 05:33:05

标签: javascript google-maps-api-3 google-api

我正在使用此代码来获取用户的完整地址信息

function getGeo() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (a) {
            $("#geoLoc").html("Determing your location..");
            $.post("https://mysite.com/getloc.php?l=" + a.coords.latitude + "," + a.coords.longitude, function (b) {
                var c = jsonParse(b);
                geo_adres = c.results[0].formatted_address;
                latitude = a.coords.latitude;
                longitude = a.coords.longitude;
                $("#geoLoc").html(c.results[0].formatted_address);
                $("#geoLoc").show("slow")
            })
        }, function (a) {
            alert(geolocationErrorMessages[a.code])
        }, {
            enableHighAccuracy: true,
            maximumAge: 12e4
        });
        return false
    } else {
        alert("Your browser doesn't support geo-location feature...")
    }
}

编辑: getloc.php包含此代码(javascript中的c var)

$data = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?latlng=". $_GET['l'] ."&sensor=false");
print $data;

实际上,我想要的是获取用户城市和国家/地区信息city, country

如何更改此c.results[0].formatted_address以实现这一目标?

2 个答案:

答案 0 :(得分:0)

试试这个工作的PHP代码,我希望这会帮助你很多:)并且在任何查询的情况下让我们知道 -

<?php

$data = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false");

$jsonnew =json_decode($data,true);

    echo "<pre>";
    print_r($jsonnew['results'][7]['address_components'][2]['long_name']);

echo "<pre>";
    print_r($jsonnew['results'][6]['address_components'][2]['long_name']);

答案 1 :(得分:0)

您不应该需要getloc PHP脚本。 Maps Javascript API包含Geocoder类。