解决方法
好.这有点牵扯,但如果我是你,我会这样做.
首先,您将使用geolocation API,如下所示:
window.navigator.geolocation.getCurrentPosition(function(pos){ console.log(pos); });
在回调中,您将获得一个位置对象.它看起来像这样:
{ "timestamp":1408324851386,"coords"{ "speed":null,"heading":null,"altitudeAccuracy":null,"accuracy":30,"altitude":null,"longitude":-111.8942634,"latitude":40.7288257 } }
然后,您可以获取经度和纬度,并致电您的服务器将其转换为邮政编码.获得纬度/经度是困难的部分.做数学把它变成拉链很容易.
调用自己的服务器将lat / long转换为zip的替代方法,您可以调用Google Maps的反向查找API.你给它一个lat长,它给你一个地址,完整的ZIP.有关如何执行此操作,请参阅HERE.
免责声明:这在IE8中不起作用,因为直到IE9才引入地理定位API.它适用于所有其他浏览器(除了Opera Mini,#NBD).
这是一个完整的工作示例
我刚试了这个,它找到了我的房子,没问题.
window.navigator.geolocation.getCurrentPosition(function(pos){ console.log(pos); $http.get('http://maps.googleapis.com/maps/api/geocode/json?latlng='+pos.coords.latitude+','+pos.coords.longitude+'&sensor=true').then(function(res){ console.log(res.data); }); })