it-swarm.com.de

W3C-Geolocation-API funktioniert nicht in Chrome

Der folgende Code funktioniert in Firefox, aber nicht in 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>

Was ist los? Ich dachte, Google Chrome sollte die W3C-Geolocation-API unterstützen.

18
LandonSchropp

Funktioniert perfekt für mich - mit Chrome 11 und Firefox 4.0.1 unter Windows 7

  • Stellen Sie sicher, dass Sie die Standortüberwachung in Chrome nicht deaktiviert haben: Options > Under the Hood > Content Settings > Location
  • Aufgrund von Sicherheitsbeschränkungen haben Ressourcen, die mit dem Schema file:/// geladen werden, keinen Zugriff auf den Speicherort. Siehe HTML 5 Geo-Standortabfrage in Chrome .
20

Wenn Ihre Domäne unsicher ist (z. B. HTTP statt HTTPS), haben Sie keinen Zugriff auf den Standort in Chrome. Dies ist seit Chrome Version 50 (20.00 Uhr PST 20. April 2016).

Weitere Informationen finden Sie unter https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only .

17
Mark

2017: 

Hinweis: Ab Chrome 50 funktioniert die Geolocation-API nur in sicheren Kontexten wie HTTPS. Wenn Ihre Site auf einem nicht sicheren Origin (z. B. HTTP) gehostet wird, funktionieren die Anforderungen zum Abrufen des Benutzerorts nicht mehr.

Geolocation-API aus ungesicherten Ursprüngen in Chrome 50 entfernt

9
kurumkan

Mit der Geolocation-API können Sie mit Zustimmung des Benutzers den Standort des Benutzers ermitteln. Sie können diese Funktion verwenden, um einen Benutzer zum Ziel zu führen und vom Benutzer erstellte Inhalte mit Geotags zu kennzeichnen. B. markieren, wo ein Foto aufgenommen wurde.

Mit der Geolocation-API können Sie auch sehen, wo sich der Benutzer gerade befindet, und ihn immer im Auge behalten, immer mit dessen Zustimmung (und nur bei geöffneter Seite). Dadurch werden viele interessante Anwendungsfälle geschaffen, z. B. die Integration mit Backend-Systemen, um eine Bestellung für die Sammlung vorzubereiten, wenn sich der Benutzer in der Nähe befindet.

Bei der Verwendung der Geolocation-API müssen Sie auf viele Dinge achten. Dieser Leitfaden führt Sie durch die gängigen Anwendungsfälle und Lösungen.

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

0
Bahram Etemad

Es funktioniert gut für mich - mit Chrome 11 und Firefox 4.0.1 unter Win 7

Stellen Sie sicher, dass Sie die Standortüberwachung in Chrome nicht deaktiviert haben: Optionen> Unter der Haube> Inhaltseinstellungen> Ort, erlauben Sie die Erlaubnis Und führen Sie die Berechtigung aus, nachdem Sie die Erlaubnis überprüft haben 

nach dem Laufen wird entweder sucesscallback oder es kommt zu 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>