Skip to content
aferre edited this page Oct 1, 2011 · 4 revisions

cf Google Distance Matrix API page for the behaviour of the WS.

Install

Just copy afGMapsDistanceRequest and afGoogleMapsAPIRequest files to your project (you need both ASIHTTP and JSON frameworks for the wrapper to work).

How to use

afGMapsDistanceRequest *req = [afGMapsDistanceRequest distanceRequest];

req.afDelegate = self;

NSMutableArray *orAr = [NSMutableArray array];

[orAr addObject:@"Paris"];
[orAr addObject:@"Berlin"];

NSMutableArray *deAr = [NSMutableArray array];

[deAr addObject:@"Marseille"];
[deAr addObject:@"Barcelone"];

[req setOrigins:orAr];

[req setDestinations:deAr];

[req setUseSensor:YES];
[req setUseHTTPS:NO];

[req setAvoidMode:AvoidModeTolls]; //optional, none default

[req setUnitsSystem:UnitsMetric]; //optional, metrics default

[req setTravelMode:TravelModeDriving]; //optional, driving default

[req startAsynchronous];

Then, simply make your class inherit the afGoogleMapsDistanceDelegate protocol, and implement the following delegate functions (if needed, all optional):

 -(void) afDistanceWSStarted:(afGMapsDistanceRequest *)ws ;

 -(void) afDistanceWS:(afGMapsDistanceRequest *)ws gotDistance:(NSNumber *) distance unit:(UnitsSystem)unit;

 -(void) afDistanceWSFailed:(afGMapsDistanceRequest *)ws withError:(NSString *)er;

 -(void) afDistanceWS:(afGMapsDistanceRequest *)ws origin:(NSString *) origin destination:(NSString *)destination failedWithError:(NSError *) err;

 -(void) afDistanceWS:(afGMapsDistanceRequest *)ws distance:(NSNumber *) distance origin:(NSString *) origin destination:(NSString *)destination unit:(UnitsSystem)unit;

This request will give you all the informations availbale. Variables called "returnedXXX" like "returnedDest" are the returned descriptions of GoogleMaps API WS.

 -(void) afDistanceWS:(afGMapsDistanceRequest *)ws distance:(NSNumber *) distance textDistance:(NSString *)textDistance origin:(NSString *) origin returnedOrigin:(NSString *)returnedOrigin destination:(NSString *)destination returnedDestination:(NSString *)returnedDest duration:(NSNumber *)durationInSec textDuration:(NSString *)textDuration unit:(UnitsSystem)unit;
Clone this wiki locally