W3C API геолокации не работает в Chrome - PullRequest
18 голосов
/ 31 мая 2011

Приведенный ниже код работает в Firefox, но не в Google Chrome:

<!DOCTYPE html>
<html>
    <head>
        <title>title</title>
        <script type="text/javascript">
            var successCallback = function(data) {
                console.log('latitude: ' + data.coords.latitude + ' longitude: ' + data.coords.longitude);
            };

            var failureCallback = function() {
                console.log('location failure :(');
            };

            var logLocation = function() {

                //determine if the handset has client side geo location capabilities
                if(navigator.geolocation){
                   navigator.geolocation.getCurrentPosition(successCallback, failureCallback);
                }
                else{
                   alert("Functionality not available");
                }
            };

            logLocation();
            setTimeout(logLocation, 5000);
        </script>
    </head>
    <body>
        <p>Testing</p>
    <body>
</html>

Что происходит? Я думал, что Google Chrome должен был поддерживать API геолокации W3C.

Ответы [ 5 ]

21 голосов
/ 31 мая 2011

Прекрасно работает для меня - и с Chrome 11, и с Firefox 4.0.1 на Win 7

  • Убедитесь, что вы не отключили отслеживание местоположения в Chrome: Options > Under the Hood > Content Settings > Location
  • Из-за ограничений безопасности ресурсам, загруженным по схеме file:///, не разрешен доступ к местоположению. См. HTML 5 Geo Location Prompt в Chrome .
18 голосов
/ 19 мая 2016

Если ваш домен небезопасен (например, HTTP, а не HTTPS), вам не разрешен доступ к местоположению в Chrome.Это начиная с Chrome версии 50 (12:00 по тихоокеанскому времени 20 апреля 2016 года).

Подробнее см. https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only.

10 голосов
/ 16 октября 2016

в 2017 году:

Примечание. Начиная с Chrome 50, API геолокации будет работать только в безопасных контекстах, таких как HTTPS.Если ваш сайт размещен в незащищенном источнике (например, HTTP), запросы на определение местоположения пользователей больше не будут работать.

API геолокации удален из незащищенных источников в Chrome 50

0 голосов
/ 20 сентября 2017

У меня работает нормально - и с Chrome 11, и с Firefox 4.0.1 на Win 7

Убедитесь, что вы не отключили отслеживание местоположения в Chrome: «Параметры»> «Под капотом»> «Настройки содержимого»> «Местоположение». и после проверки разрешения, пожалуйста, запустите его

после запуска либо будет sucesscallback, либо до errorcallback

function sucesscallback (position)
{

var userLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

   
    var myOptions = {
        zoom: 15,
        center: userLatLng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var mapObject = new google.maps.Map(document.getElementById("googleMap"), myOptions);

    var marker = new google.maps.Marker({
        map: mapObject,
        position: userLatLng

    });
   
}




    function failureCallback(error) {
    
        switch (error.code) {
            case 1:
                alert("User denied the request for Geolocation.");
                break;
            case 2:
                alert("Location information is unavailable. Please ensure Location is On");
                break;
            case 3:
                alert("timeout");
                break;
            case 4:
                alert("An unknown error occurred.");
                break;
        }
    }
<div id='googleMap' style='width:300px;height:300px;'>
</div>
0 голосов
/ 01 мая 2017

Geolocation API позволяет вам, с согласия пользователя, определить местоположение пользователя. Вы можете использовать эту функциональность для таких вещей, как направление пользователя к месту назначения и геотегирование пользовательского контента; например, отметка места, где была сделана фотография.

API Geolocation также позволяет вам видеть, где находится пользователь, и следить за ним, когда он перемещается, всегда с согласия пользователя (и только при открытой странице). Это создает много интересных вариантов использования, таких как интеграция с бэкэнд-системами для подготовки заказа к сбору, если пользователь находится рядом.

При использовании API геолокации вы должны знать о многих вещах. Это руководство проведет вас через общие случаи использования и решения.

https://developers.google.com/web/fundamentals/native-hardware/user-location/?hl=en

...