据我所知,当我不该使用谷歌路线服务拨打电话时,我回到了零结果状态。我已经遍历了调试器,看起来我的值是正确的。我正在使用带有航点的路线服务路线方法。对于起点,我需要使用lat,lng val,因为这种情况一直在变化,但是对于航路点和目的地,我使用完整的地址。航点地址末尾没有国家/地区,但在美国州停留,但目的地的地址中确实有国家/地区值。我认为这不是问题。所有地址都在美国,即使处于相同状态也是如此。

假设输入的值正确,有人看到我的代码有问题吗,以及它是怎么引起的?

function setRoute() {
var wayPts = "";
var cAddress = $("#companyAddr").text();
//slice the zip code off
cAddress = cAddress.slice(0, -6);
var driverDisplay = $("#orders").find('.driverDisplay');
for (i = 0; i < driverDisplay.length; i++){
    var directionsService = new google.maps.DirectionsService();
    var dlats = $(driverDisplay[i]).find('.dLat');
    var dlat = $(dlats[0]).text();
    var dlngs = $(driverDisplay[i]).find('.dLng');
    var dlng = $(dlngs[0]).text();
    dLatLng = new google.maps.LatLng($('#driverLat').text(), $('#driverLng').text());
    var stops = [];
    var delAddrs = $(driverDisplay[i]).find('.dAddr');
    for (var x = 0; x < delAddrs.length; x++) {
        var delAddr = $(delAddrs[x]).text();
        stops.push({ location: delAddr, stopover: true});
    }
    var request = {
        origin: dLatLng,
        destination: cAddress,
        waypoints: stops,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function (response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            console.trace(status);
            var data = response;
            //$('#eta').text(response.routes[0].legs[0].duration.text);
        }
        //else { $('#eta').text("?") }
    });
}
}

最佳答案

您创建了这些变量,但是似乎没有使用它们:

var dlats = $(driverDisplay[i]).find('.dLat');
var dlat = $(dlats[0]).text();
var dlngs = $(driverDisplay[i]).find('.dLng');
var dlng = $(dlngs[0]).text();


我认为这里可能存在一个问题:

dLatLng = new google.maps.LatLng($('#driverLat').text(), $('#driverLng').text());


jQuery的text()函数返回一个字符串。 Google Maps的LatLng构造函数需要浮点数。现在,这可能正在执行以下操作:

dLatLng = new google.maps.LatLng('1.234', '5.678');


您应该通过执行以下操作确保它们是浮动的:

dLatLng = new google.maps.LatLng(parseFloat($('#driverLat').text()), parseFloat($('#driverLng').text()));

10-05 23:12