2016-04-19 9 views
0

私が見る限り、Googleの検索サービスを使用して電話をかけたときに、ゼロ状態に戻りました。私はデバッガを歩いていると私の値が正しいように見えます。私はウェイポイントで方向サービスルート方法を使用しています。起源については、常に変化しているので緯度、経度を使用する必要がありますが、ウェイポイントと目的地については完全な住所を使用します。ウェイポイントの住所には国がありません。米国の州では停止しますが、住所には国の値が入ります。私はそれが問題だとは思わないでしょう。すべての住所は同じ州であっても米国内にあります。Google Maps Direction Serviceゼロの結果

誰かが私のコードに何か問題があり、どのようにしてこの問題を引き起こしているのでしょうか?

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("?") } 
    }); 
}  
} 
+0

何「ZERO_RESULTS」を与える入力値ですか?あなたの問題を示す[最小、完全、テスト済みおよび読みやすい例](http://stackoverflow.com/help/mcve)を提供してください。 – geocodezip

+0

これらはすべて動的であり、デバッガでしか見ることができず、ループでこれを実行しています。私はこれらをどのように見ることができるのか分かりません。 – user192632

+0

あなたの問題を示す[最小、完全、テスト済みおよび読み取り可能な例](http://stackoverflow.com/help/mcve)を入力してください。 – geocodezip

答えて

2

あなたはこれらの変数を作成しますが、その後、それらを使用していないようです:

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

私は1つの問題はここにあるかもしれないと思う:

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())); 
+0

これはまさに私が答えを待っている間にこの質問を投稿した後に変更したものです。私は、driverLat idの代わりにhtmlのタグクラスから取得したdlatとdlngの値を使用しました。パースフロートは必要ではありませんでしたが、とにかく良い提案かもしれません。私はこれを受け入れたものとしてマークします – user192632

関連する問題