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> 
4

1 に答える 1

0

Google サイトのドキュメントによると、すべての住所コンポーネントをループして、タイプを調べ、抽出したいものと比較する必要があります。

street_number = 番地 route = 通りの名前 locality = 都市 administrative_area_level_1 = 州または県 country = 国

住所コンポーネントが配信される順序は保証されていないため、確認する必要があります。

于 2013-02-03T16:45:16.363 に答える