我使用Google地图设置了一个页面自动填充服务。下面是地方自动填充(工作正常)输入文本字段(受控)的地址的屏幕快照...
当我点击Google下拉列表中显示的唯一选项时,会调用地点更改处理程序(应该如此)并执行以下代码以获取地点结果对象:
var place = m_autocomplete.getPlace();
检查调试器中的place对象会发现只定义了一个属性; name属性,下面是作为JSON字符串的place对象:
{"name":"2701 Riverside Dr, Ottawa, ON K1A 0B1, Canada"}
place对象缺少Google maps documentation for a PlaceResult object中概述的所有其他属性(即:没有几何,没有address_components等)。
所以,我添加了更多代码(回退)并在地方结果对象不完整时直接调用地理编码器服务,即:
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': addr }, geocoder_callback_handler);
其中addr包含文本字段中的值(通过调试器确认);地理编码器回调函数返回状态:ZERO_RESULTS
问题:
1 - 为什么自动填充服务在下拉列表中显示一个地址,导致地方结果对象不完整?
2 - 为什么地理编码器无法识别自动填充服务提供的地址?
任何建议都将受到赞赏。