ÐÑполÑзование геолокаÑии
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Geolocation API позволÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿ÑедоÑÑавлÑÑÑ ÑÐ²Ð¾Ñ Ð¼ÐµÑÑоположение web-пÑиложениÑ, еÑли полÑзоваÑÐµÐ»Ñ ÑоглаÑиÑÑÑ Ð¿ÑедоÑÑавиÑÑ ÐµÐ³Ð¾. Ðз ÑообÑажений конÑиденÑиалÑноÑÑи, Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑоÑено ÑазÑеÑение на пÑедоÑÑавление инÑоÑмаÑии о меÑÑоположении.
ÐонÑепÑÑ Ð¸ иÑполÑзование
ÐÑ ÑаÑÑо Ñ Ð¾ÑиÑе полÑÑаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ меÑÑоположении полÑзоваÑÐµÐ»Ñ Ð² ÑвоÑм веб пÑиложении, напÑимеÑ, Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑаÑÑка на каÑÑе, либо Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑ Ð¸Ð½ÑоÑмаÑиÑ, оÑнованнÑÑ Ð½Ð° меÑÑоположении поÑеÑиÑелÑ.
API геолокаÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзвано ÑеÑез Navigator.geolocation; ÑÑо заÑÑÐ°Ð²Ð¸Ñ Ð±ÑаÑÐ·ÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑвеÑÑи Ñведомление Ñ Ð·Ð°Ð¿ÑоÑом Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к ÑекÑÑÐµÐ¼Ñ Ð¼ÐµÑÑоположениÑ. ÐÑли его одобÑÑÑ, Ñо бÑаÑÐ·ÐµÑ ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑедоÑÑавиÑÑ Ð´Ð¾ÑÑÑп ко вÑем возможноÑÑÑм по ÑабоÑе Ñ Ð¸Ð½ÑоÑмаÑией о меÑÑонаÑ
ождении (напÑимеÑ, GPS).
Тогда ÑазÑабоÑÑÐ¸ÐºÑ ÑÑанÑÑ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ Ð½ÐµÑколÑко ÑазнÑÑ ÑпоÑобов полÑÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑей инÑоÑмаÑии:
Geolocation.getCurrentPosition(): возвÑаÑÐ¸Ñ Ð¼ÐµÑÑоположение ÑÑÑÑойÑÑваGeolocation.watchPosition(): заÑегиÑÑÑиÑÑÐµÑ ÑÑнкÑиÑ-обÑабоÑÑик, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки каждÑй Ñаз, когда меÑÑоположение измениÑÑÑ, возвÑаÑÐ°Ñ Ð½Ð¾Ð²Ñе даннÑе.
Ð Ð¾Ð±Ð¾Ð¸Ñ ÑлÑÑаÑ, меÑÐ¾Ð´Ñ Ð¿ÑинимаÑÑ ÑÑи аÑгÑменÑа:
- ÐбÑзаÑелÑнÑÑ ÐºÐ¾Ð»Ð±Ñк-ÑÑнкÑÐ¸Ñ Ð¿Ñи ÑÑпеÑ
е: еÑли ÑдалоÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¼ÐµÑÑоположение полÑзоваÑелÑ, Ñо ÑÑнкÑÐ¸Ñ Ð²ÑзовеÑÑÑ Ñ Ð¾Ð±ÑекÑом
GeolocationPositionкак одним паÑамеÑÑом, пÑедоÑÑавлÑÑÑим доÑÑÑп к даннÑм о меÑÑоÑаÑположении. - ÐеобÑзаÑелÑнÑÑ ÐºÐ¾Ð»Ð±Ñк-ÑÑнкÑÐ¸Ñ Ð¿Ñи оÑибке: еÑли не ÑдалоÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿Ð¾Ð·Ð¸ÑиÑ, Ñо колбÑк-ÑÑнкÑÐ¸Ñ Ð²ÑзовеÑÑÑ Ñ Ð¾Ð±ÑекÑом
GeolocationPositionErrorкак одним паÑамеÑÑом, ÑодеÑжаÑим инÑоÑмаÑÐ¸Ñ Ð¾ Ñом, ÑÑо поÑло не Ñак. - ÐеобÑзаÑелÑнÑй обÑекÑ
PositionOptions, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð½Ð°Ð´ÑÑÑойки полÑÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾ меÑÑоположении.
ÐнÑеÑÑейÑÑ
Geolocation-
ÐлавнÑй клаÑÑ ÑÑого API â ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑекÑÑего меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, наблÑÐ´Ð°ÐµÑ Ð·Ð° его изменениÑми и ÑдалÑÐµÑ ÑÑнкÑии-наблÑдаÑели.
GeolocationPosition-
ÐÑедоÑÑавлÑÐµÑ Ð¼ÐµÑÑоÑаÑположение полÑзоваÑелÑ. ÐкземплÑÑ
GeolocationPosition, полÑÑеннÑй пÑи ÑÑпеÑном вÑзове одного из меÑодовGeolocation, внÑÑÑи колбÑк-ÑÑнкÑии пÑи ÑÑÐ¿ÐµÑ Ðµ, ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑÐºÑ Ð²Ñемени плÑÑ ÑкземплÑÑ Ð¾Ð±ÑекÑаGeolocationCoordinates. GeolocationCoordinates-
ÐÑедоÑÑавлÑÑÑ ÐºÐ¾Ð¾ÑдинаÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ; ÐкземплÑÑ
GeolocationCoordinatesÑодеÑÐ¶Ð¸Ñ ÑиÑоÑÑ, долгоÑÑ Ð¸ пÑоÑÑÑ Ð²Ð°Ð¶Ð½ÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ Ð¸Ð½ÑоÑмаÑиÑ. GeolocationPositionError-
GeolocationPositionErrorвозвÑаÑаеÑÑÑ Ð¿Ñи неÑÑпеÑном вÑзове меÑодов, ÑодеÑжаÑÐ¸Ñ ÑÑ Ð²Geolocation, внÑÑÑи колбÑк-ÑÑнкÑии пÑи оÑибке, ÑодеÑÐ¶Ð¸Ñ ÐºÐ¾Ð´ оÑибки и ÑообÑение. -
ТоÑка Ð²Ñ Ð¾Ð´Ð° в API. ÐозвÑаÑÐ°ÐµÑ ÑкземплÑÑ Ð¾Ð±ÑекÑа
Geolocation, из коÑоÑого ÑÑановÑÑÑÑ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ Ð²Ñе ÑÑнкÑии и меÑодÑ.
СловаÑи
PositionOptions-
ÐÑедоÑÑавлÑÐµÑ Ð¾Ð±ÑекÑ, ÑодеÑжаÑий опÑии, коÑоÑÑе можно пеÑедаÑÑ ÐºÐ°Ðº паÑамеÑÑ Ð²
Geolocation.getCurrentPosition()иGeolocation.watchPosition().
СпеÑиÑикаÑии
| Specification |
|---|
| Geolocation> # geolocation_interface> |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
ÐоÑÑÑпноÑÑÑ
Так как меÑÑоположение, оÑнованное на WiFi, ÑаÑÑо пÑедоÑÑавлÑеÑÑÑ Google, API меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ доÑÑÑпен в ÐиÑае. ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÑÑнÑÑ Ð¿ÑовайдеÑов, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Baidu, Autonavi или Tencent. ÐÑи ÑеÑвиÑÑ Ð¸ÑполÑзÑÑÑ IP-адÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸/или пÑиложение Ð´Ð»Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ ÑоÑной позиÑии.