После многих часов работы над ним я не смог последовательно извлечь квартиру / комнату / подсобное помещение. Наличие этой детали было важнее, чем возможность ее отдельно отделить, поэтому я обошел ее, используя это.
var componentForm = {
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
function fillInAddress(place) {
for (var component in componentForm) {
document.getElementById(component).value = '';
document.getElementById(component).disabled = false;
}
for (var i = 0; i < place.address_components.length; i++) {
var addressType = place.address_components[i].types[0];
if (componentForm[addressType]) {
var val = place.address_components[i][componentForm[addressType]];
document.getElementById(addressType).value = val;
}
}
var parts = $("#searchField").val().split(",");
$("#street_number").val(parts[0]);
}
Я извлек информацию из автозаполнения как обычно, но пропустил "street_number" и "route". Затем сделал простое разбиение по значению автозаполнения после выбора и использовал первую часть, возвращая адрес улицы в целом (включая фабрику / квартиру / помещение и название улицы).
Эта работа дала мне результаты, которые хорошо работают для того, что мне нужно. Удачи!