Javascript “为什么地理编码不返回”;无效地址“;何时应用组件限制?
所以我使用的是谷歌地图APIv3的地理编码服务。我限制了对“瑞士/中国”的搜索 但是当我输入无效字符时,比如!x!或xz等,我没有得到“无效地址”,而是得到了“瑞士”,结果是Javascript “为什么地理编码不返回”;无效地址“;何时应用组件限制?,javascript,google-maps,google-maps-api-3,geocode,Javascript,Google Maps,Google Maps Api 3,Geocode,所以我使用的是谷歌地图APIv3的地理编码服务。我限制了对“瑞士/中国”的搜索 但是当我输入无效字符时,比如!x!或xz等,我没有得到“无效地址”,而是得到了“瑞士”,结果是地址\u组件数组,但如果未应用国家/地区限制,它将返回“无效地址” 但如果用户键入了无效的内容,我需要国家/地区限制并返回错误结果。请参阅下面的代码 我的代码: function placeSearchBox() { var searchBoxText = document.getElementByI
地址\u组件
数组,但如果未应用国家/地区限制,它将返回“无效地址”
但如果用户键入了无效的内容,我需要国家/地区限制并返回错误结果。请参阅下面的代码
我的代码:
function placeSearchBox() {
var searchBoxText = document.getElementById('locationSearch').value;
console.log('placeboxText',searchBoxText);
if (searchBoxText.length > 0) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: searchBoxText,
componentRestrictions: {
country: 'CH'
}
}, function (data, status) {
console.log(data);
if (status === google.maps.GeocoderStatus.OK && data.length > 0) {
searchResultOfGmapObj = data[0];
dispalySearchResult(data[0]);
console.log('GeoCodedAddress',data[0]);
vm.site.SiteAddress = searchBoxText;
} else alert("Invalid address");
});
}
}
那么,为什么它没有返回无效地址或错误状态呢?作为解决此问题的方法,我做了以下工作,但如果有人能说出此问题的原因和不同的解决方案,请分享
function placeSearchBox() {
var searchBoxText = document.getElementById('location-search').value;
console.log('placeboxText',searchBoxText);
if (searchBoxText.length > 0) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: searchBoxText,
componentRestrictions: {
country: 'CH'
}
}, function (data, status) {
console.log(data,status,searchBoxText);
if (status === google.maps.GeocoderStatus.OK && data.length > 0) {
searchResultOfGmapObj = data[0];
var searchText = searchBoxText.toLowerCase();
if(searchText != 'switzerland' && searchResultOfGmapObj.address_components.length == 1 && searchResultOfGmapObj.address_components[0].long_name == 'Switzerland'){
alert("Invalid address");
}else{
dispalySearchResult(data[0]);
console.log('GeoCodedAddress',data[0]);
vm.site.SiteAddress = searchBoxText;
}
}
});
}
}
我添加了下面的代码块
var searchText = searchBoxText.toLowerCase();
if(searchText != 'switzerland' && searchResultOfGmapObj.address_components.length == 1 && searchResultOfGmapObj.address_components[0].long_name == 'Switzerland'){
alert("Invalid address");
}