Google maps api 3 google maps api places自动完成getPlace()不工作

Google maps api 3 google maps api places自动完成getPlace()不工作,google-maps-api-3,autocomplete,google-places-api,Google Maps Api 3,Autocomplete,Google Places Api,我对谷歌地图api位置自动完成有问题。函数getPlaces()似乎没有按照文档中的描述工作: 返回由用户选择的地点的详细信息(如果详细信息已更改) 已成功检索。否则返回一个存根位置对象,带有 设置为输入字段当前值的name属性 以以下代码为例: <html> <head> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=f

我对谷歌地图api位置自动完成有问题。函数
getPlaces()
似乎没有按照文档中的描述工作:

返回由用户选择的地点的详细信息(如果详细信息已更改) 已成功检索。否则返回一个存根位置对象,带有 设置为输入字段当前值的name属性

以以下代码为例:

<html>
<head>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=places"></script>
    <script type="text/javascript">
    initialize = function () {
        var input = document.getElementById('locationsearch');
        var options = {
            types: ['(cities)']
        };
        autocomplete = new google.maps.places.Autocomplete(input, options);
    }
    google.maps.event.addDomListener(window, 'load', initialize);
    submitform = function () {
        searchplace = autocomplete.getPlace();
        console.log(searchplace.name);
    }
    </script>
</head>
<body>
    <form onsubmit="submitform();return false;">
        <input type="text" id="locationsearch"/>
        <input type="button" value="search" onclick="submitform(); return false;"/>
    </form>
</body>
</html>

初始化=函数(){
var input=document.getElementById('locationsearch');
变量选项={
类型:['(城市)]
};
autocomplete=newgoogle.maps.places.autocomplete(输入,选项);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
submitform=函数(){
searchplace=autocomplete.getPlace();
console.log(searchplace.name);
}
这个简单的代码在
input=“text”
元素中使用了自动完成功能,按下它旁边的按钮后,它应该在控制台中记录地名。 我遇到的问题是
input
元素选择的位置不完整。我希望
getPlace()
函数返回
place
对象,并将name属性设置为
input
元素的当前值。相反,控制台正在记录错误:
未捕获类型错误:无法读取未定义的属性“name”

使用places autocomplete是否有问题,或者该函数是否不能正常工作?
谢谢。

原因是谷歌使用了另一个标识符“地区””而不是通常的“名称”

因此,如果使用“place”中的子元素“locality”,则可以获得该地点的名称

代码:


请定义“未完成选定位置”,即在输入元素中写入两个字母,而不从自动完成列表中选择任何内容时。未选择位置,但输入元素也不是空的。文档仅针对在输入中按下enter键的情况说明此行为。这不是3.14的真实文档:“如果成功检索详细信息,则返回用户选择的地点的详细信息。否则,将返回存根位置对象,并将name属性设置为输入字段的当前值。“我也有同样的问题。这需要通过获取连接的输入字段的直接值来解决……这就是一种情况,我重新构建了一个完整的
autocomplete
函数,以按预期工作。到目前为止,我还没有找到任何其他解决办法。
 var val = place.address_components[0][componentForm['locality']];