Google distance Matrix API value insert in Existing XML



Is it possible to insert the Google Distance Matrix API to my existing xml data? The xml data is produced by my PHP and I don't have an existing travel time included in my Database. I was thiniking if is it possible to upon parsing iteration of my xml data the computed travel time and distance of Google Distance Matrix API can be inserted? below is my AJAX call



function searchNearMarkers(distance){
clearLocations();
document.getElementById('errorNotifs').innerHTML = "";
//document.getElementById('checkboxes').innerHTML = '';
var searchUrl = '...some url here...'
downloadUrl(searchUrl, function(data){
var xml = parseXml(data);
var markerNodes = xml.documentElement.getElementsByTagName("marker");
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < markerNodes.length; i++){
var name = markerNodes[i].getAttribute("name");
var address = markerNodes[i].getAttribute("address");
var info = markerNodes[i].getAttribute("info");
var budget = markerNodes[i].getAttribute("budget");
var tts = markerNodes[i].getAttribute("tts");
var type = markerNodes[i].getAttribute("type");
var latlng = new google.maps.LatLng(
parseFloat(markerNodes[i].getAttribute("lat")),
parseFloat(markerNodes[i].getAttribute("lng")));
distMatLink[i]=(i,markerNodes[i].getAttribute("lat"),markerNodes[i].getAttribute("lng"));
bounds.extend(latlng);
if (i == (markerNodes.length - 1)){
bounds.extend(userPosLatLng);
}
}
map.fitBounds(bounds);
destinations = "";
for (var i = 0; i < distMatLink.length ; i++){
destinations += distMatLink[i];
}
var origin = posLat.toFixed(6)+','+posLng.toFixed(6);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [origin],
destinations: [destinations],
travelMode: google.maps.TravelMode.WALKING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);

function callback(response, status) {
if (status == google.maps.DistanceMatrixStatus.OK) {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;

for (var i = 0; i < origins.length; i++) {
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++) {
var element = results[j];
var distance = element.distance.text;
var duration = element.duration.text;
var from = origins[i];
var to = destinations[j];
}
}
}
}
});
}

No comments:

Post a Comment