Ошибка API Google Distance Matrix с расстоянием - PullRequest
0 голосов
/ 05 апреля 2019

Я строю регистрационную форму с ограничениями по площади. Только люди в пределах 4 км могут зарегистрироваться в системе.

Я установил Google Matrix API и добавил приведенный ниже код для расчета.

//*********DISTANCE AND DURATION**********************//
        var service = new google.maps.DistanceMatrixService();
        service.getDistanceMatrix({
            origins: [source],
            destinations: [destination],
            travelMode: google.maps.TravelMode.DRIVING,
            unitSystem: google.maps.UnitSystem.METRIC,
            avoidHighways: false,
            avoidTolls: false
        }, function (response, status) {
            if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
                var distance = response.rows[0].elements[0].distance.text;
                //alert(distance);
                console.log(distance);
                var fields = distance.split(' ');
                var name = fields[0];
                name = name.replace(",", ".");
                var street = fields[1];
                if (name < 4 && (street == "km" || street == "m" )) {
                    if (document.RegForm.address.value == "") {
                        //alert( "Please provide your address!" );
                        document.RegForm.address.focus();
                        return false;
                    }
                    else {
                        var address = document.RegForm.address.value;
                        localStorage.setItem("address", address);
                    }

Это работает, но у меня есть проблема. Например, адрес с расстоянием 4,5 клм рассчитывается как 4,5 клм. Таким образом, ограничение работает и не позволяет пользователю зарегистрироваться.

Теперь я перемещаю штифт в другую страну, и он вычисляет расстояние в 2,383 км и позволяет пользователю зарегистрироваться (что, конечно, неправильно).

Как я понимаю, проблема в символах "." и ","

Кроме того, как можно ограничить форму автозаполнения Google показом результатов из одного города?

Нет государства или страны. Но город.

...