我面临着google places api的问题。
当我输入“新德里”时,它在我的网站页面上显示“新德里,德里110001,印度”:https://www.fabstage.com/professionals/。但它显示在任何其他网站上 “新德里,德里,印度”。这只发生在这个位置(新德里)。 点击此处:https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
我想要相同的输入,因为它没有获得位置搜索查询的正确结果。请帮忙。
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCKvFWo1zxb71vCtFRIq2z4oz2h5EEZYPQ&v=3.exp&libraries=places" type="text/javascript"></script>
<input type="text" class="autocomplete form-control" id="search_city" placeholder="Input City Location">
<script type="text/javascript">
var mydiv = document.getElementsByClassName('autocomplete')[0];
google.maps.event.addDomListener(mydiv, 'click', function(){
var options = {
types: ['(regions)']
};
var input = document.getElementsByClassName('autocomplete')[0];
if(input){
var autocomplete = new google.maps.places.Autocomplete(input , options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var dat = autocomplete.getPlace();
$("#search_city").val(dat.formatted_address);
/***On keyup event**/
var input_data = dat.formatted_address;
var path = $('#path').val();
var path = $('#main_path').val();
if(input_data) {
var checkPath = path.substr(path.length - 1);
if(checkPath == '/') {
var new_href = path+'city/'+input_data.toLowerCase()
.replace(/ /g,'-')
.replace(/[^\w-]+/g,'');
}else {
var new_href = path+'/city/'+input_data.toLowerCase()
.replace(/ /g,'-')
.replace(/[^\w-]+/g,'');
}
} else {
var new_href = path;
}
$('#find_city').attr('href', new_href);
});
}
});
</script>
答案 0 :(得分:0)
如果您仔细查看文档,Google maps api会有不同的结果选项返回。您引用的示例仅使用场所进行自动完成。如果您只想要地点而不是地址,请确保您已将Google地图API设置为仅返回地点。
编辑:
在您的网站上检查http请求的结果和plunker之后,返回相同的json对象。它们都包含格式化地址的相同值。
{{1}}
但是,您提供的代码会修改格式化地址以删除邮政编码。所以我会检查以确保您的网站做同样的事情。