这是我用来getPlace()
它总是返回undefined
对象的函数:为什么Google地图getPlace()总是返回Undefined对象?
var element = document.getElementById('hdnOldAddress');
var AutoCompleteAddress2;
element.value = 'Marketfair Mall 1916 Skibo Road Fayetteville NC 28314';
autocomplete2 = new google.maps.places.Autocomplete(element);
autocomplete2.addListener('place_changed', function() {
var place2 = autocomplete2.getPlace();
if (place2.address_components) {
AutoCompleteAddress2 = [
(place2.address_components[0] && place2.address_components[0].short_name || ''),
(place2.address_components[1] && place2.address_components[1].short_name || ''),
(place2.address_components[2] && place2.address_components[2].short_name || ''),
(place2.address_components[3] && place2.address_components[3].short_name || ''),
(place2.address_components[4] && place2.address_components[4].short_name || ''),
(place2.address_components[5] && place2.address_components[5].short_name || ''),
(place2.address_components[6] && place2.address_components[6].short_name || ''),
(place2.address_components[7] && place2.address_components[7].short_name || ''),
(place2.address_components[8] && place2.address_components[8].short_name || ''),
(place2.address_components[9] && place2.address_components[9].short_name || ''),
(place2.address_components[10] && place2.address_components[10].short_name || ''),
(place2.address_components[11] && place2.address_components[11].short_name || ''),
(place2.address_components[12] && place2.address_components[12].short_name || ''),
(place2.address_components[13] && place2.address_components[13].short_name || ''),
(place2.address_components[14] && place2.address_components[14].short_name || ''),
].join(' ');
}
});
google.maps.event.trigger(autocomplete2, 'place_changed');
编辑
替换this.getPlace()
与autocomplete2.getPlace()
我试过了,用'var place2 = autocomplete2.getPlace();'替换,但不工作。获取相同的错误。 – JMD
我们正在手动设置'元素'(文本框)的值,而不是从谷歌地图提供的自动建议下拉列表中进行选择。这是我们没有得到地方的原因吗? – JMD
问题是place_changed事件的触发器。 – geocodezip