2010-08-10 3 views
8

Я хотел бы получить широту и долготу текущего местоположения с мобильного устройства с поддержкой gps прямо из веб-браузера. Могу ли я узнать, возможно ли это? как это сделать? требуется ли геолокация api? Некоторый пример кодирования был бы полезен. Благодарю.получить текущую широту и долготу от устройства с поддержкой gps

+0

Пользователь должен умышленно предоставить эту информацию. См. Домашнюю страницу Google на мобильном телефоне. –

+0

Какое устройство? Какой API? –

+0

@josh да, конечно, предполагается, что пользователь разрешил делиться местоположением по настройкам телефона. – davidlee

ответ

16

Используйте API геолокации HTML5, здесь official spec and examples.

EDIT

Я обновил свой ответ включать текущую поддержку браузера.

поддержка API W3C Geolocation

Firefox 3.5+ 
Safari 5.0+ 
Chrome 5.0+ 
Opera 
iPhone 3.0+ 
Android 2.0+ 

· ·
Другие телефоны, не перечисленные выше использования Gears или их собственные, специфичные для платформы API-интерфейсы.

Ааа, будет у нас когда-либо есть только один грех gle API? :)

Большое спасибо Mark Pilgrim за его замечательный post.

+0

означает ли это, что html5 geolocation api может использоваться всеми устройствами с поддержкой gps? спасибо .. – davidlee

+0

Сообщение от Марка Пилигрима, на которое вы ссылаетесь, больше не доступно :( –

+0

Google Gears долго не рекомендуется. –

0

Вам не нужно использовать новейший мобильный телефон для использования GPS и Geolocation API. Почти каждый мобильный браузер (без прокси-сервера) может быть использован для чтения позиции из GPS-навигатора buidin. Если у вас есть Java и GPS в телефоне - вы можете использовать mobile-gps-web-gate - см. На http://code.google.com/p/mobile-gps-web-gate/

9

Вот фактический код JavaScript, который использует API-интерфейс HTML5 Geolocation. Следующие работы как в Android-браузере, так и в iPhone Safari:

  function onPositionUpdate(position) 
      { 
       var lat = position.coords.latitude; 
       var lng = position.coords.longitude; 
       alert("Current position: " + lat + " " + lng); 
      } 

      if(navigator.geolocation) 
       navigator.geolocation.getCurrentPosition(onPositionUpdate); 
      else 
       alert("navigator.geolocation is not available"); 
+0

Ссылка не работает !!!!!! –

Смежные вопросы