2017-09-22 2 views
2

Ich versuche derzeit, eine einfache Karte mit Javascript, Openstreetmaps und Prospekt zu implementieren.Javascript Geolocation nicht finden Standortinformationen

Mein Problem kommt viel früher, wenn ich Javascripts Geolocation aufrufen und die Informationen im Browser bestätige, bekomme ich einen Fehler. Mein aktueller Code ist die folgende:

<html> 

<head> 

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" 
integrity="sha512-M2wvCLH6DSRazYeZRIm1JnYyh22purTM+FDB5CsyxtQJYeKq83arPe5wgbNmcFXGqiSH2XR8dT/fJISVA1r/zQ==" 
crossorigin=""/> 

<script src="https://unpkg.com/[email protected]/dist/leaflet.js" 
integrity="sha512-lInM/apFSqyy1o6s89K4iQUKg6ppXEgsVxT35HbzUupEVRh2Eu9Wdl4tHj7dZO0s1uvplcYGmt3498TtHq+log==" 
crossorigin=""></script> 

<style> 
    #mymap { 
     width: 100%; 
     height: 400px; 
     background-color: grey; 
     margin-top: 15px; 
    } 
</style> 

<script language="javascript"> 

function initmap(initialLat, initialLong) 
{ 
    if(!initialLat || !initialLat.length){ 
    initialLat = 38.01693; 
} 

if(!initialLong || !initialLong.length){ 
    initialLong = -8.69475; 
} 

var mymap = this.mymap = L.map('mymap',{ 
    center: [initialLat, initialLong], 
    zoom: 15 
    }); 

var osmUrl='http://tile.openstreetmap.org/{z}/{x}/{y}.png'; 
var osmAttrib='Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'; 

L.tileLayer(osmUrl, osmAttrib).addTo(mymap); 
} 

function getMylocation() 
{ 
    if(navigator.geolocation){ 

    navigator.geolocation.getCurrentPosition(function (position) { 

     var lat = position.coords.latitude; 
     var long = position.coords.longitude; 

     mymap.setView(new L.LatLng(lat, long), 15); 

    }, function (error) { 
     switch (error.code) { 
     case error.PERMISSION_DENIED: 
      output.innerHTML += "<p>User denied the request for Geolocation.</p>"; 
      break; 
     case error.POSITION_UNAVAILABLE: 
      output.innerHTML += "<p>Location information is unavailable.</p>"; 
      break; 
     case error.TIMEOUT: 
      output.innerHTML += "<p>The request to get user location timed out.</p>"; 
      break; 
     case error.UNKNOWN_ERROR: 
      output.innerHTML += "<p>An unknown error occurred.</p>"; 
      break; 
     } 
    }); 
    } 
} 

</script> 

</head> 

<body onLoad="javascript:initmap();"> 

<button id="find-near-btn" onClick="getMylocation()"> 
    Find my location 
</button> 

<div id="mymap"></div> 
<div id="output"></div> 

</body> 

</html> 

Wenn die anruf getMyLocation() Funktion der Taste, ich am Ende immer in dem

case error.POSITION_UNAVAILABLE: 

Zustand. Irgendeine Idee warum dies passieren könnte?

Antwort

0

Fehler wird aufgerufen, wenn keine Positionsinformationen verfügbar sind. GeoLocation API schätzt den Standort anhand von CELL Towers, WLAN-MAC-Adressen, GPS (falls mobil). Aber die Information ist nicht verfügbar. Ihr Code ist korrekt. Versuchen Sie, das auf einem anderen Gerät auszuführen.

Verwandte Themen