这是我第一次使用Google,在这个时候我很无助。
因此,在我的JSP页面中,我试图提供一个textbox,当您开始键入它时,它将提示位置下拉。
所以,首先我包含了Google map API。
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&
libraries=places"
type="text/javascript" /></script>另外,我只想把国家限制在India上,所以我在JSP中添加了下面的代码-
function initialize(fieldId) {
var options = {
componentRestrictions : {
country : "in"
}
};
var input = document.getElementById(fieldId);
var autocomplete = new google.maps.places.Autocomplete(input, options);
}JSP的其他部分如下所示:
<script type="text/javascript">
$(document).ready(function() {
google.maps.event.addDomListener(window, 'load', initialize('fid'));
});
</script>
<input id="fid" type="text" autocomplete="on">现在当我开始输入文本框时,我得到了预期的结果-

但是,当我从建议的下拉列表中选择一个位置时,我的文本框中会填充:place, city, state, country。

我希望我的文本框只填充准确的位置。在我的示例中,我希望textbox只使用Powai填充。
有可能吗?
发布于 2015-05-05 08:29:35
根据文献资料的说法,Google返回的JSON包含一个名为address_components的对象数组。
此数组包含部分地址,如邮政编码、街道号码等.
似乎您对属性types包含值locality的对象感兴趣,这是应该放在文本框中的值。
google.maps.event.addListener(autocomplete, 'place_changed', function () {
var place = autocomplete.getPlace();
if (place.address_components)
{
for(var i in place.address_components)
{
if(place.address_components[i].hasOwnProperty("types"))
{
if(place.address_components[i].types.indexOf("locality") == 0)
$("#YourTextbox").text(place.address_components[i].short_name);
}
}
}只需用文本框的ID替换$("#YourTextbox"),如果您使用纯JS解决方案,则使用document.getElementById。
https://stackoverflow.com/questions/30039262
复制相似问题