Restrict Google Places Autocomplete to return addresses only

This question is old, but I figured I’d add to it in case anyone else is having this issue. restricting types to ‘address’ unfortunately does not achieve the expected result, as routes are still included. Thus, what I decided to do is loop through the result and implement the following check:

result.predictions[i].types.includes('street_address')

Unfortunately, I was surprised to know that my own address was not being included, as it was returning the following types: { types: ['geocode', 'premise'] }

Thus, I decided to start a counter, and any result that includes ‘geocode’ or ‘route’ in its types must include at least one other term to be included (whether that be ‘street_address’ or ‘premise’ or whatever. Thus, routes are excluded, and anything with a complete address will be included. It’s not foolproof, but it works fairly well.

Loop through the result predictions, and implement the following:

if (result.predictions[i].types.includes('street_address')) {
    // Results that include 'street_address' should be included
    suggestions.push(result.predictions[i])
} else {
    // Results that don't include 'street_address' will go through the check
    var typeCounter = 0;
    if (result.predictions[i].types.includes('geocode')) {
        typeCounter++;
    }
    if (result.predictions[i].types.includes('route')) {
        typeCounter++;
    }
    if (result.predictions[i].types.length > typeCounter) {
        suggestions.push(result.predictions[i])
    }
}

Leave a Comment