В простейшем случае нам надо всего лишь вызвать
navigator.geolocation.getCurrentPosition()
Пример:
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
function foundLocation(position)
{
console.log(location.address.city);
}
function noLocation()
{
console.log('no position');
}
И вроде бы всё просто и хорошо, но мы познаем настоящую печаль, когда окажется что данный способ работает только в firefox.
Для того, что бы сделать код более универсальным, придется использовать сервис для обратного геокодирования, который предоставляет гугл:
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
function foundLocation(position)
{
$.get('http://maps.googleapis.com/maps/api/geocode/json?latlng='+position.coords.latitude+','+position.coords.longitude+'&sensor=false',
function(response){
console.log(response);
});
}
function noLocation()
{
console.log('no position');
}
В итоге у нас окажется объект response
с кучей полезной информации расположении пользователя.Вот что он вернул мне например, интересующие на данные находятся в results:
Object {results: Array[14], status: "OK"}
results: Array[14]
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
8: Object
9: Object
10: Object
11: Object
12: Object
13: Object
length: 14
__proto__: Array[0]
status: "OK"
__proto__: Object
Для работы всего этого дела надо не забыть подключить google maps api конечно же:
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
Это все не серьезно. Хочу в HTML5 Geolocation долготу и широту сохранять в БД например в MySQL. Может кто-нибудь мне поможет в этом деле?!
ОтветитьУдалить