Тип компонента адреса в геокодировании карт Google - PullRequest
0 голосов
/ 24 декабря 2010

это часть моего кода геокодирования. Я хочу, чтобы он показывал только страну выбранного места, но он показывает все компоненты адреса. Моя проблема в том, что я не могу указать объект компонентов адреса. Есть способ сделать это, который написан на документации, но я не понял, можете ли вы сделать это для меня.

 if (geocoder) {
                geocoder.geocode({'latLng': latlng}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        var str = "";
                        $.each(results, function(){
                            str += "address components: <ul>"
                            $.each(this.address_components, function(){
                                str +="<li>"+this.types.join(", ")+": "+this.long_name+"</li>";
                            });
                            str +="</ul>";
                        });
                        $("#geocode_info").html(str);

Ответы [ 2 ]

3 голосов
/ 25 декабря 2010

Полагаю, вам нужна только страна из полученного ответа.
Нужна работа. Нужно разобрать JSON для названия страны. Попробуйте выполнить ответ для геокодирования.

for(var addComponent in json.results[0].address_components){
    var component = json.results[0].address_components[addComponent];
    for(typeIndex in component.types ){
        if(component.types[typeIndex]=='country') {
            console.log(component.long_name);
        }
    }   
}
0 голосов
/ 21 сентября 2012

Возможно, вы захотите дважды проверить свой код, теперь кажется, что тип отсутствует на некоторых компонентах адреса.

http://maps.google.com/maps/api/geocode/xml?address=3000+Australia&sensor=false

...