2013-02-02 41 views
0

以下是我爲了獲取移動設備的當前位置而編寫的代碼。它顯示了當前位置與移動設備的城市和國家。但我需要顯示街道地址的位置。 請儘快諮詢。如何顯示當前街道,城市和國家的移動位置

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width;height=device-height; user-scalable=no" /> 
<meta http-equiv="Content-type" content="text/html;charset=utf-8"> 
<title>PhoneGap Reverse Geolocation Lookup</title> 
<script type="text/javascript" src="cordova-1.7.0.js"></script> 
<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 
var geocoder; 
$(document).ready(function() { 
geocoder = new google.maps.Geocoder(); 
$('#button-get-reverse-lookup').click(function(){ 
navigator.geolocation.getCurrentPosition(onGetCurrentPositionSuccess, onGetCurrentPositionError); 
}); 
}); 
var onGetCurrentPositionSuccess = function(position) { 
console.log("lat: " + position.coords.latitude); 
console.log("long: " + position.coords.longitude); 
var lat = parseFloat(position.coords.latitude); 
var lng = parseFloat(position.coords.longitude); 
// paris, france - uncomment to test 
//var lat = parseFloat(48.850258); 
//var lng = parseFloat(2.351074); 
// tiburon, california 
//var lat = parseFloat(37.872685); 
//var lng = parseFloat(-122.45224); 
var latlng = new google.maps.LatLng(lat, lng); 
geocoder.geocode({'latLng': latlng}, function(results, status) 
{ 
if (status == google.maps.GeocoderStatus.OK) 
       { 
        if (results[1]) 
        { 
         var reverse_geo = results[1]; 

         if (reverse_geo.address_components[0]) 
          { 

          alert(reverse_geo.address_components[4].long_name+"," + reverse_geo.address_components[3].long_name+"," + reverse_geo.address_components[2].long_name+"," + reverse_geo.address_components[0].long_name); 
          //text = text + "0: " + reverse_geo.address_components[0].long_name + "<br />"1: " + reverse_geo.address_components[1].long_name + "<br />""; 
          } 
         } 
       } 
       else 
       { 
        alert("No hay informaci�n de Reverse Geocoding."); 
       } 
}); 
} 
var onGetCurrentPositionError = function(error) { 
console.log("Couldn't get geo coords from device"); 
} 
</script> 
</head> 

<body> 
<h1>Reverse Geolocation Lookup</h1> 
<button id="button-get-reverse-lookup">Get Reverse Lookup</button> 
</body> 
</html> 

回答

0

按照docs on Google site你需要遍歷所有的地址組件看的類型和他們比較對您想提取的東西。

street_number =街道號碼 路線=街道名稱 地方=城 administrative_area_level_1 =州或省 國家=國家

沒有在地址組件交付所以你需要訂單的保證檢查他們。