如何使用Google Maps API从lat / lng坐标获取邮政编码?
这是我到目前为止所尝试的内容
我有下面的代码,我用它来获取网页上的人的Zipcode。它加载纬度和经度,但是它失败了创建地理编码对象,GeoCoderStatus的警报没有触发。不确定我在哪里做错任何指针,请:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>
<script type="text/javascript">
function geoloc() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (pos) {
alert(pos.coords.longitude);
GeoToZip(pos.coords.latitude, pos.coords.longitude);
}, function (err) {
alert(err.message);
}
);
} else {
alert('Geolocation unsupported!');
}
}
function GeoToZip(lat, lng) {
var latlng = new google.maps.LatLng(lat, lng);
var geocoder = new google.maps.Geocoder();
try {
geocoder.geocode({ 'latLng': latlng }, function (res, status) {
**alert(google.maps.GeocoderStatus);**
if (status == google.maps.GeocoderStatus.OK && typeof res[0] !== 'undefined') {
var zip = res[0].formatted_address.match(/,\s\w{2}\s(\d{5})/);
if (zip) {
alert(zip[1]);
} else fail('Failed to parse');
} else {
fail('Failed to reverse');
}
});
}
catch (err) {
alert(err);
}
}