2015-05-29 9 views
5

मैं में से city प्राप्त करने का प्रयास कर रहा हूं। मैंने अभी कुछ जेएस और jQuery सीखना शुरू कर दिया है, इसलिए यह एक मूल गलती हो सकती है।जिओलोकेशन - लंबी और लेट से शहर कैसे प्राप्त करें

$(document).ready(function(){ 
    function displayLocation(latitude,longitude){ 
     var request = new XMLHttpRequest(); 

     var method = 'GET'; 
     var url = 
      'http://maps.googleapis.com/maps/api/geocode/json?latlng=' 
      + latitude + ',' + longitude + '&sensor=true'; 
     var async = true; 

     request.open(method, url, async); 
     request.onreadystatechange = function(){ 
      if(request.readyState == 4 && request.status == 200){ 
       var data = JSON.parse(request.responseText); 
       var address = data.results[0]; 
       alert(address.city.short_name); 
      } 
     }; 
     request.send(); 
    }; 

    var successCallback = function(position){ 
     var x = position.coords.latitude; 
     var y = position.coords.longitude; 
     displayLocation(x,y); 
    }; 

    navigator.geolocation.getCurrentPosition(successCallback); 
}); 
+0

क्या अपने कोड वास्तव में उत्पादन करता है? – pete23

+0

वेब देव उपकरणों के कंसोल में कोई त्रुटि: लेखन त्रुटि: address.city अपरिभाषित है जब मैं परिवर्तन की सूचना होने के लिए: चेतावनी (address.formatted_address); यह पूरे स्वरूपित पते को लौटाता है, लेकिन मुझे केवल शहर के नाम की आवश्यकता है – coder2222

+0

मुख्य बिंदु – Nullify

उत्तर

1

यह मदद करनी चाहिए

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     function displayLocation(latitude,longitude){ 
     var request = new XMLHttpRequest(); 

     var method = 'GET'; 
     var url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+latitude+','+longitude+'&sensor=true'; 
     var async = true; 

     request.open(method, url, async); 
     request.onreadystatechange = function(){ 
     if(request.readyState == 4 && request.status == 200){ 
     var data = JSON.parse(request.responseText); 
     alert(request.responseText); // check under which type your city is stored, later comment this line 
     var addressComponents = data.results[0].address_components; 
     for(i=0;i<addressComponents.length;i++){ 
      var types = addressComponents[i].types 
      //alert(types); 
      if(types=="locality,political"){ 
       alert(addressComponents[i].long_name); // this should be your city, depending on where you are 
      } 
      } 
     //alert(address.city.short_name); 
     } 
    }; 
    request.send(); 
}; 

var successCallback = function(position){ 
var x = position.coords.latitude; 
var y = position.coords.longitude; 
displayLocation(x,y); 
    }; 


navigator.geolocation.getCurrentPosition(successCallback); 

    }); 
</script> 
+0

पर प्रकाश डाला गया है, लेकिन यह पहली बार स्थान के हर संभव मूल्य (संभवतः) की एक सूची प्रदर्शित करता है और "ठीक" पर क्लिक करने से यह दिखाता है शहर। क्या यह लूप के कारण है? – coder2222

+0

क्षमा करें, बस कोड को अधिक सावधानी से पढ़ें और ध्यान दें कि आपने उस लाइन पर इंगित किया है जिस पर टिप्पणी की जानी चाहिए! यह ठीक काम करता है, धन्यवाद! – coder2222

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