Google API Address Components

前端 未结 3 1617
借酒劲吻你
借酒劲吻你 2020-12-12 07:02

I am attempting to obtain the address components using the Google Maps API however am unable to properly parse results. My code is as follows:

    // Ajax C         


        
3条回答
  •  情歌与酒
    2020-12-12 07:30

    I wrote a function.

    /**
    *   geocodeResponse is an object full of address data.  
    *   This function will "fish" for the right value
    *   
    *   example: type = 'postal_code' => 
    *   geocodeResponse.address_components[5].types[1] = 'postal_code'
    *   geocodeResponse.address_components[5].long_name = '1000'
    * 
    *   type = 'route' => 
    *   geocodeResponse.address_components[1].types[1] = 'route'
    *   geocodeResponse.address_components[1].long_name = 'Wetstraat'
    */
    function addresComponent(type, geocodeResponse, shortName) {
      for(var i=0; i < geocodeResponse.address_components.length; i++) {
        for (var j=0; j < geocodeResponse.address_components[i].types.length; j++) {
          if (geocodeResponse.address_components[i].types[j] == type) {
            if (shortName) {
              return geocodeResponse.address_components[i].short_name;
            }
            else {
              return geocodeResponse.address_components[i].long_name;
            }
          }
        }
      }
      return '';
    }
    

    example of how to use:

    ...
    myGeocoder.geocode({'latLng': marker.getPosition()}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK && results[1]) {
        var country = addresComponent('country', results[1], true);
        var postal_code = addresComponent('postal_code', results[1], true);
      }
    });
    ...
    

提交回复
热议问题