Я работаю над основной частью моей функциональности формы, которая находит расстояние между двумя почтовыми индексами.Он точно находит расстояние, но, к сожалению, этот API-интерфейс Google Distance Matrix также выполняет поиск существующих кодов городов, что может привести к случайному и ненужному возврату пробега.
В настоящее время я могу найти пробег между 64154 и 816.(19.1), но я бы хотел полностью исключить возврат любых данных AREA CODE.
Эта функция возвращает указанные данные:
handleChange = (e) => {
const name = e.target.name
const value = e.target.value
this.setState({
[name]: value
//call back function to make sure we get the last character from the user input
}, () => {
this.getMiles(this.state.origin, this.state.destination)
})
}
getMiles = (origin, destination) => {
const {google} = this.props
let service = new google.maps.DistanceMatrixService()
console.log(origin)
console.log(destination)
service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: 'DRIVING',
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
}, (response, status) => {
if (status !== 'OK') {
alert('Error was: ' + status);
} else {
let originList = response.originAddresses;
let destinationList = response.destinationAddresses;
if (response.rows[0].elements[0].status === 'NOT_FOUND'){
return false
} else{
this.setState({mileage: response.rows[0].elements[0].distance.text.replace("mi", " ")})
}
}
});
}
Я не могу найти ничего вдокументация, которая позволила бы мне отфильтровать определенные типы адресов.Я даже пытался установить различные ограничения формы в отношении длины символов, что по большей части работает, но пользователь все еще может ввести три цифры и «пробел» вплоть до конца ввода.К сожалению, это обойдет мои условные условия и вернет данные для КОДА ОБЛАСТИ, потому что искомая длина символа будет выполнена "816 ".length === 5