2016-05-08 6 views
3

Есть ли резервный вариант для API геолокации Google?API геолокации удален из необеспеченного происхождения в Chrome 50

Начиная с Google Chrome версии 50, все запросы от беззалоговых истоков до геолокация API возвращают код ошибки 1.

https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only?hl=en

В результате, я не могу найти текущее местоположение пользователей из хром.

Не хотите переместить мой сервер с HTTP на HTTPS.

+0

Попробуйте [gpsha.re] (https://gpsha.re). Вы можете перенаправить запросы своего местоположения на эту страницу. – Dennisvdh

ответ

0

Этот парень делает какой-то запасной момент, когда он обходит. http://jsfiddle.net/gogs/jwt9f1o3/

var apiGeolocationSuccess = function(position) { 
    alert("API geolocation success!\n\nlat = " + position.coords.latitude + "\nlng = " + position.coords.longitude); 
}; 

var tryAPIGeolocation = function() { 
    jQuery.post("https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDCa1LUe1vOczX1hO_iGYgyo8p_jYuGOPU", function(success) { 
     apiGeolocationSuccess({coords: {latitude: success.location.lat, longitude: success.location.lng}}); 
    }) 
    .fail(function(err) { 
    alert("API Geolocation error! \n\n"+err); 
    }); 
}; 

var browserGeolocationSuccess = function(position) { 
    alert("Browser geolocation success!\n\nlat = " + position.coords.latitude + "\nlng = " + position.coords.longitude); 
}; 

var browserGeolocationFail = function(error) { 
    switch (error.code) { 
    case error.TIMEOUT: 
     alert("Browser geolocation error !\n\nTimeout."); 
     break; 
    case error.PERMISSION_DENIED: 
     if(error.message.indexOf("Only secure origins are allowed") == 0) { 
     tryAPIGeolocation(); 
     } 
     break; 
    case error.POSITION_UNAVAILABLE: 
     alert("Browser geolocation error !\n\nPosition unavailable."); 
     break; 
    } 
}; 

var tryGeolocation = function() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(
     browserGeolocationSuccess, 
     browserGeolocationFail, 
     {maximumAge: 50000, timeout: 20000, enableHighAccuracy: true}); 
    } 
}; 

tryGeolocation(); 

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

  • Нет связанных вопросов^_^