Как получить zipcode пользователя с помощью AngularJS
мне нужно заполнить некоторые данные, на основании zipcode
пользователя, посещающего сайт.
может кто-нибудь сказать мне, как получить zipcode
местоположения этого пользователя?
Я использую AngularJS в своем приложении.
2 ответов
OK. Это немного запутанно, но вот как бы я это сделал на вашем месте.
во-первых, вы будете использовать 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 легко.
An альтернатива вызову собственного сервера для перевода lat / long в zip, вы можете вызвать API обратного просмотра Google Maps. Вы даете ему lat long, и он дает вам адрес, в комплекте с молнией. См.здесь как это сделать.
отказ от ответственности: это не будет работать в IE8, так как API геолокации не был представлен до IE9. Он будет работать во всех других браузерах (кроме 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);
});
})
для определения этого, похоже, нет встроенного метода, вам придется использовать картографический сервис или базу данных zipcode.