2013-01-15 56 views
0

我使用此代碼的getData從JavaScript:Qt和谷歌地圖 - 時間型

const QVariant myvar = this->page()->mainFrame()-> 
    evaluateJavaScript("measureDistance("+QString::fromStdString(prev->marker_id)+","+QString::fromStdString(stop->marker_id+");")); 
bool ok; 
const int myint = myvar.toInt(&ok); 
if (!ok) 
    qWarning() << "Error getting int from JS"; 
qDebug() << myint; 
getMapTimeDistance(location, QString::fromStdString(prev->getName()), stop, 10); 

而在JavaScript中的最後一行是:

function measureDistance(m1, m2) { 
var wp = new Array(); 
var lstart = new google.maps.LatLng(markers[m1].position); 
var lend = new google.maps.LatLng(markers[m2].position); 
var request = { 
    origin : lstart, 
    destination : lend, 
    waypoints : [], 
    optimizeWaypoints: true, 
    travelMode : google.maps.DirectionsTravelMode.DRIVING 
}; 
directionsService.route(request, function(response, status) { 
    if (status== google.maps.DirectionsStatus.OK) { 
     response.routes[0].legs[0].duration.text; 
    } else { 
     document.getElementById('locationD').value = "drawRouteBad"; 
    } 

}); 

}

你知道爲什麼這個代碼不適用於我?我嘗試過不同類型的組合,但沒有任何幫助。可能我不知道javasscripts的值是什麼類型。也許我應該以不同的方式將它傳遞給qt?

回答

0

response.routes[0].legs[0].duration.value;從谷歌地圖API V3 Directions Service(每your last question到來。這項服務是異步的,你不能從調用它返回任何東西,你必須使用你所需要的回調函數內的所有數據(當它已經從服務器返回並可用)

+0

添加代碼後 - 它仍然是同樣的問題?如果是這樣你有任何想法如何發送此值爲qt? –