解决方法
您可以设置自动填充选项以使用地理编码作为类型,这将限制返回到地址的结果:
var input = document.getElementById( 'searchTextField' ); var options = { bounds: yourBounds,types: ['geocode'] }; autocomplete = new google.maps.places.Autocomplete( input,options );
没有办法将结果限制在街道上,但这主要将达到您想要的目的.如果您正确设置您的Bounds,可能仅限于一个城市的区域,它会让您尽可能接近.
更新响应评论:
如果要开始输入城市,您可以将地图的边界绑定到自动填充边界,当自动填充中选择城市时,将自动将地图设置为其视口:
var options = { bounds: yourBounds,types: ['(cities)'] }; autocomplete = new google.maps.places.Autocomplete( input,options ); // This will bind the map's bounds to the Autocomplete's bounds: autocomplete.bindTo('bounds',map);
然后,您可以更新Autocomplete的类型,与上述类似,以使其返回地址:
autocomplete.setTypes( [ "geocode" ] );
从那里你可以看到Places Library API Docs.