Okay, nevermind, it's still not working:
$.get(searchURL, function(data) {
var markers =
data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var latlng = new
google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
directionsService.route(request, function(response,
status) {
if (status == google.maps.DirectionsStatus.OK) {
var content = '<div style="overflow:hidden;
width:350px;height:
100px;">'+
'<strong>'+markers[i].getAttribute("name")+'</strong>'+
'<hr />'+
'<p><strong>'+markers[i].getAttribute("name")+'</strong>, is
<strong>'+markers[i].getAttribute("distance")+' miles</strong> from
your current location.<hr />'+
'total distance:
<strong>'+markers[i].getAttribute("distance")+'
mi</strong> | driving time:
<strong>'+response.routes[0].legs[0].duration.text+'</strong>'+
'</p>'+
'</div>';
addMarkerAndInfoWindow(latlng','mouseover',content,true);
});
}
....
i'm getting 'can't call method getAttribute on undefined' now. But
markers is defined, and it works fine without this directions call.
On Jun 9, 9:53 pm, Seth <[email protected]> wrote:
> Thanks Larry! That was the problem! I want to display the driving time
> inside an infoWindow
>
> On Jun 9, 2:48 pm, "[email protected]" <[email protected]>
> wrote:
>
>
>
> > On Jun 9, 11:06 am, Seth <[email protected]> wrote:
>
> > > So I am working with V3 and I'm trying to calculation the driving time
> > > between two points (latlng). I already have the distance and I can get
> > > the driving time using the following code:
>
> > > function getDrivingTime(start, end) {
> > > var response;
> > > var request = {
> > > origin : start,
> > > destination : end,
> > > travelMode : google.maps.DirectionsTravelMode.DRIVING};
>
> > > directionsService.route(request, function(response, status) {
> > > if (status == google.maps.DirectionsStatus.OK) {
> > > alert(response.routes[0].legs[0].duration.text);
>
> > > }
> > > });
> > > }
>
> > > BUT there's no way to actually return a value within the route method.
> > > You can't even assign values outside of it, so I have no way of
> > > returning that string that has the driving time inside of it... I'd
> > > like to do this:
>
> > > function getDrivingTime(start, end) {
> > > ...
> > > if (status == google.maps.DirectionsStatus.OK) {
> > > return response.routes[0].legs[0].duration.text;
> > > ...
>
> > > }
>
> > > but it never returns a value. I'm so confused. How can I get the
> > > driving time or duration using the GoogleMaps api?
>
> > You can't return a response from an asynchronous callback function.
> > But you can store the return value in a global variable or display it
> > in a <div> on your page. You need to do whatever you need to do with
> > it inside the callback function (where you have your alert).
>
> > What do you want to do with the returned value?
>
> > -- Larry
--
You received this message because you are subscribed to the Google Groups
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-js-api-v3?hl=en.