2012-01-18 21 views
9

के साथ उपयोगकर्ता का स्थान (अक्षांश, देशांतर) प्राप्त करें बिंग मैप्स एपीआई या Google मानचित्र API का उपयोग कर उपयोगकर्ता के अक्षांश & देशांतर को पुनर्प्राप्त करने का कोई तरीका है। ,बिंग या Google मानचित्र API

var geoLocationProvider = new Microsoft.Maps.GeoLocationProvider(map);   
geoLocationProvider.getCurrentPosition();  

लेकिन उस समारोह किसी भी डेटा, यह बस मानचित्र पर स्थान सेट वापस नहीं करता है, जबकि: मुझे लगता है मैं एक कोड का टुकड़ा है, जहां एक "मुझे autolocate" देखा सुविधा मानचित्र पर ही उपयोगकर्ता चिह्नित करने के लिए इस्तेमाल किया गया था मुझे कुछ गणना करने के लिए उस स्थान की आवश्यकता है, अर्थात् गणना करें कि स्थानों की पूर्वनिर्धारित सूची किस वर्तमान उपयोगकर्ता स्थान के निकटतम है। इसके अलावा, क्या इस एपीआई में से कोई भी इनपुट के रूप में प्रदान किए गए दो स्थानों (लैट, लॉन) के बीच की दूरी की गणना कर सकता है?

धन्यवाद, पावेल

उत्तर

11

हो रही है अपने स्थान मानचित्र एपीआई का हिस्सा नहीं है। इसके बजाय, अपना स्थान प्राप्त करने के लिए HTML5 GeoLocation API का उपयोग करें। एक उदाहरण होगा:

navigator.geolocation.getCurrentPosition(locationHandler); 

function locationHandler(position) 
{ 
    var lat = position.coords.latitude; 
    var lng = position.coords.longitude; 
} 

अक्षांश/एलएनजी बिंदुओं के बीच दूरी की गणना के लिए, http://www.movable-type.co.uk/scripts/latlong.html पर एक नजर है।

// Latitude/longitude spherical geodesy formulae & scripts (c) Chris Veness 2002-2011     - www.movable-type.co.uk/scripts/latlong.html 
// where R is earth’s radius (mean radius = 6,371km); 
// note that angles need to be in radians to pass to trig functions! 
var R = 6371; // km 
var dLat = (lat2-lat1).toRad(); 
var dLon = (lon2-lon1).toRad(); 
var lat1 = lat1.toRad(); 
var lat2 = lat2.toRad(); 

var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
     Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c; 
+0

बहुत बहुत धन्यवाद! क्या आप फॉलो-अप प्रश्न पर भी एक नज़र डाल सकते हैं: http://stackoverflow.com/questions/8917904/html5-geolocation-api-no-callback-is-called- क्या भी? धन्यवाद! – dragonfly

+1

बस किसी को ट्राड अपरिभाषित होने के मामले में, यह उत्तर जांचें: http://stackoverflow.com/a/5260472/879821 – kavain

0

एचटीएमएल 5 जिओलोकेशन वर्तमान स्थान के लेट और लंबे समय तक मिलता है। http://www.w3schools.com/html/html5_geolocation.asp

<!DOCTYPE html> 
<html> 
<body> 

<p id="demo">Click the button to get your coordinates:</p> 
<button onclick="getLocation()">Try It</button> 

<script> 
var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 
    x.innerHTML="Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
} 
</script> 

</body> 
</html> 
संबंधित मुद्दे