解析谷歌地图中的addressComponents

Parsing addressComponents in Google Maps

本文关键字:addressComponents 谷歌地图      更新时间:2024-04-29

在addressComponents上初始化和更新时,我无法获得完整的国家/地区名称和州名称。虽然我的名字很短,但我想解析和检索州和国家的长名称。

JS-

function updateControls(addressComponents) {
    $('#ustate').val(addressComponents.stateOrProvince);
    $('#ucountry').val(addressComponents.country);
}
$('#mapz').locationpicker({
    location: {
        latitude: 45.91886765642549,
        longitude: -77.57585875078735
    },
    radius: 300,
    inputBinding: {
        locationNameInput: $('#pac-input'),
    },
    enableAutocomplete: true,
    onchanged: function(currentLocation, radius, isMarkerDropped) {
        var addressComponents = $(this).locationpicker('map').location.addressComponents;
        updateControls(addressComponents);
    },
    oninitialized: function(component) {
        var addressComponents = $(component).locationpicker('map').location.addressComponents;
        updateControls(addressComponents);
    }
});

HTML:

<div style="width: 900px !important; height:300px !important" id="mapz"></div>
<input  autocomplete="off" placeholder="Search Box" id="pac-input" class="text_field" type="text">
<input type="text" name="ucountry" id="ucountry"  size="45" value=""  class="text_field" />
<input type="text" name="ustate"  id="ustate" maxlength="75"  class="text_field" />

您可以从以下代码中获取国家/地区:

function getCountry(addrComponents) {
        for (var i = 0; i < addrComponents.length; i++) {
            if (addrComponents[i].types[0] === "country") {
                console.log(addrComponents[i].long_name);
                return addrComponents[i].long_name;
            }
            if (addrComponents[i].types.length === 2) {
                if (addrComponents[i].types[0] === "political")
                {
                    console.log(addrComponents[i].long_name);
                    return addrComponents[i].long_name;
                }
            }
        }
    }

对于状态使用以下功能:

function getState(addrComponents) {
            for (var i = 0; i < addrComponents.length; i++) {
                if (addrComponents[i].types[0] === "administrative_area_level_1")    {
                    console.log(addrComponents[i].long_name);
                    return addrComponents[i].long_name;
                }
            }
        }
相关文章:
  • 没有找到相关文章