2013-07-02 12 views
8
पर काम नहीं

नोट: एचटीएमएल नीचे उद्धृत के लिए मूल स्रोत आया http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation_mapगूगल मैप्स जावास्क्रिप्ट जियोलोकेशन - क्रोम

से और Google Maps Javascript V3 geolocation - cannot access initialLocation variable unless alerted मैं जियोलोकेशन उदाहरण के तीन विभिन्न संस्करणों एकत्रित की हैं। सभी फ़ायरफ़ॉक्स में ठीक से काम करते हैं। क्रोम में कोई भी काम नहीं करता है। मैंने सभी साइटों को मेरे स्थान का उपयोग करने की अनुमति देने के लिए क्रोम अनुमति सेट की है, लेकिन फिर भी कोई सफलता नहीं है। यह एक क्रोम सेटिंग होना चाहिए, लेकिन स्पष्ट नहीं होना चाहिए: सेटिंग्स/उन्नत सेटिंग्स/गोपनीयता/सामग्री सेटिंग्स/स्थान/सभी भौतिक स्थान को ट्रैक करने के लिए सभी साइटों को अनुमति दें।

फ़ायरफ़ॉक्स में मैं स्थान साझा करने के लिए संकेत मिलने के बाद अपना वर्तमान स्थान देखता हूं।

क्रोम में मुझे उपयोगकर्ता को जिओलोकेशन या के अनुरोध से इनकार कर दिया गया त्रुटि: भौगोलिक स्थान एचटीएमएल के आधार पर विफल रहा।

यह देखते हुए कि फ़ायरफ़ॉक्स में काम करता है और क्रोम मुझे नहीं लगता कि इसे क्रोम सेटिंग होना है, लेकिन मुझे नहीं पता कि मैं क्या कर सकता हूं जो सभी साइटों को मेरे भौतिक स्थान को ट्रैक करने की अनुमति देने से अधिक अनुमोदित है।

geoGoogle.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Geolocation</title> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <link href="https://google-developers.appspot.com/maps/documentation/javascript/examples/default.css" rel="stylesheet"> 
    <!-- 
    Include the maps javascript with sensor=true because this code is using a 
    sensor (a GPS locator) to determine the user's location. 
    See: https://developers.google.com/apis/maps/documentation/javascript/basics#SpecifyingSensor 
    --> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script> 

    <script> 
var map; 

function initialize() { 
var mapOptions = { 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById('map-canvas'), 
    mapOptions); 

// Try HTML5 geolocation 
if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
      map.setCenter(initialLocation); 
      var infowindow = new google.maps.InfoWindow({ 
      map: map, 
      position: initialLocation , 
      content: 'Location found using W3C standard' 
      }); 
      var marker = new google.maps.Marker({ 
      position: initialLocation, 
      map: map 
      }); 
     }, function() { 
      handleNoGeolocation(true); 
     }); 
} else { 
    // Browser doesn't support Geolocation 
    handleNoGeolocation(false); 
} 
} 

function handleNoGeolocation(errorFlag) { 
if (errorFlag) { 
    var content = 'Error: The Geolocation service failed.'; 
} else { 
    var content = 'Error: Your browser doesn\'t support geolocation.'; 
} 

var options = { 
    map: map, 
    position: new google.maps.LatLng(60, 105), 
    content: content 
}; 

var infowindow = new google.maps.InfoWindow(options); 
map.setCenter(options.position); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
</head> 
<body> 
    <div id="map-canvas"></div> 
</body> 
</html> 

geoGoogle2.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Geolocation</title> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <link href="https://google-developers.appspot.com/maps/documentation/javascript/examples/default.css" rel="stylesheet"> 
    <!-- 
    Include the maps javascript with sensor=true because this code is using a 
    sensor (a GPS locator) to determine the user's location. 
    See: https://developers.google.com/apis/maps/documentation/javascript/basics#SpecifyingSensor 
    --> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script> 

    <script> 
var map; 

function initialize() { 
var mapOptions = { 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById('map-canvas'), 
    mapOptions); 

// Try HTML5 geolocation 
if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = new google.maps.LatLng(position.coords.latitude, 
             position.coords.longitude); 

    var infowindow = new google.maps.InfoWindow({ 
     map: map, 
     position: pos, 
     content: 'Location found using HTML5.' 
    }); 

    map.setCenter(pos); 
    }, function() { 
    handleNoGeolocation(true); 
    }); 
} else { 
    // Browser doesn't support Geolocation 
    handleNoGeolocation(false); 
} 
} 

function handleNoGeolocation(errorFlag) { 
if (errorFlag) { 
    var content = 'Error: The Geolocation service failed.'; 
} else { 
    var content = 'Error: Your browser doesn\'t support geolocation.'; 
} 

var options = { 
    map: map, 
    position: new google.maps.LatLng(60, 105), 
    content: content 
}; 

var infowindow = new google.maps.InfoWindow(options); 
map.setCenter(options.position); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
</head> 
<body> 
    <div id="map-canvas"></div> 
</body> 
</html> 

geoGoogle3.html:

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo">Click the button to get your position:</p> 
<button onclick="getLocation()">Try It</button> 
<div id="mapholder"></div> 
<script> 
var x=document.getElementById("demo"); 
function getLocation() 
    { 
    if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(showPosition,showError); 
    } 
    else{x.innerHTML="Geolocation is not supported by this browser.";} 
    } 

function showPosition(position) 
    { 
    var latlon=position.coords.latitude+","+position.coords.longitude; 

    var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" 
    +latlon+"&zoom=14&size=400x300&sensor=false"; 
    document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>"; 
    } 

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

धन्यवाद

यहाँ तीन एचटीएमएल 5 फ़ाइलें हैं

+1

की [W3C Geolocation API क्रोम में काम नहीं कर रहा] संभव डुप्लिकेट काम करेंगे (http://stackoverflow.com/questions/6181379/w3c-geolocation-api-not-working-in-chrome) –

+0

हां, यह एक डुप्लिकेट है। मैं फ़ाइल का उपयोग कर रहा था: /// ... धन्यवाद डेविड। बीटीडब्ल्यू, चूंकि आपके उत्तर के बगल में कोई हरा चेक मार्क नहीं है, मुझे क्या करना चाहिए? क्या मुझे सवाल हटा देना चाहिए? – user825628

+0

नहीं, इसे छोड़ दो। आपका कोड सड़क के नीचे किसी की मदद करेगा। यदि समुदाय सोचता है कि यह अनावश्यक है तो इसका ध्यान रखा जाएगा। –

उत्तर

8

क्रोम और सफारी (वेबकिट ब्राउज़र) फ़ाइल सिस्टम में मौजूद फ़ाइलों के लिए जिओलोकेशन एपीआई की अनुमति नहीं देता है।

सिर्फ एक वेब अनुप्रयोग बना सकते हैं और

http://localhost/geoGoogle.html 
+0

अभी भी सफारी 5.1.7 में इसे पाने में सक्षम नहीं है – saikiran

0

की तरह स्थानीय होस्ट के साथ यह तक पहुँचने का प्रयास सिर्फ HTTPS का उपयोग HTTP के बजाय और यह

संबंधित मुद्दे