0

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

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来实现这一目标?

4

2 回答 2

0

试试这个工作的 php 代码,我希望这会对你有很大帮助:) 如果有任何查询,请让 mew 知道——

<?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']);
于 2012-09-06T05:58:47.300 回答
0

你不应该需要你的getlocPHP 脚本。Maps Javascript API 包含一个Geocoder类。

于 2012-09-06T07:22:40.910 回答