Examples
Places module
Get place detail
// Get and print the name and description of Eiffel Tower (poi:530)
TKPlacesManager *manager = [[TravelKit sharedKit] places];
[manager detailedPlaceWithID:@"poi:530" completion:^(TKDetailedPlace * _Nullable place, NSError * _Nullable error) {
if (place) {
NSString *description = place.detail.fullDescription.text;
NSLog(@"Description of %@ is: %@", place.name, description);
}
else NSLog(@"Something went wrong :/");
}];
// Get and print the name and description of Eiffel Tower (poi:530)
TravelKit.shared.places.detailedPlace(withID: "poi:530") { (detailedPlace, error) in
if let place = detailedPlace, let desc = place.detail?.fullDescription?.text {
print("Description of \(place.name) is:\n\n\(desc)")
} else {
print("Something went wrong :/")
}
}
// Besides main media, we can get all media available for a certain place
TKPlacesManager *manager = [[TravelKit sharedKit] places];
[manager mediaForPlaceWithID:@"poi:530" completion:^(NSArray<TKMedium *> * _Nullable media, NSError * _Nullable error) {
for (TKMedium *m in media) {
NSString *title = m.title;
// Print medium title if it has one
if (title) NSLog(@"Title: %@", title);
else NSLog(@"no title");
}
// To get the actual image from URL with certain size, we use method in TKMedium
TKMedium *first = media.firstObject;
[first displayableImageURLForSize:CGSizeMake(first.width, first.height)];
}];
// Besides main media, we can get all media available for a certain place
TravelKit.shared.places.mediaForPlace(withID: "poi:530") { (media, err) in
if let media = media, let first = media.first {
// Print medium title if it has one
for m in media {
print("Title: \(m.title ?? "no title")")
}
// To get the actual image from URL with certain size, we use method in TKMedium
first.displayableImageURL(for: CGSize(width: first.width, height: first.height))
}
}
Tours module
Get tours
// Create query to to get 12 tours in London that take longer than 1 hour
TKToursGYGQuery *query = [TKToursGYGQuery new];
query.parentID = @"city:1";
query.minimalDuration = [NSNumber numberWithInt: 3600];
query.count = [NSNumber numberWithInt: 12];
TKToursManager *manager = [[TravelKit sharedKit] _tours];
// Perform query and print a message containing tour's title
[manager toursForGYGQuery:query completion:^(NSArray<TKTour *> * _Nullable tours, NSError * _Nullable error) {
for (TKTour *t in tours) {
NSString * title = t.title;
if (title) NSLog(@"%@", title);
else NSLog(@"no title");
}
}];
// Create query to to get 12 tours in London that take longer than 1 hour
let query = TKToursGYGQuery()
query.parentID = "city:1"
query.minimalDuration = 3600
query.count = 12
// Perform query and print a message containing tour's title
TravelKit.shared.tours.tours(for: query) { (tours, err) in
if let tours = tours {
for tour in tours {
print("\(tour.title)")
}
}
}
Favourites module
Favourite & unfavourite places
TKFavoritesManager *manager = [[TravelKit sharedKit] favorites];
// Add Eiffel Tower to favorites
[manager updateFavoritePlaceID:@"poi:530" setFavorite:YES];
// Get your favorites and print their IDs
NSLog(@"%@", [manager favoritePlaceIDs]);
// Remove Eiffel Tower from favorites
[manager updateFavoritePlaceID:@"poi:530" setFavorite:NO];
// Add Eiffel Tower to favorites
TravelKit.shared.favorites.updateFavoritePlaceID("poi:530", setFavorite: true)
// Get your favorites and print their IDs
print(TravelKit.shared.favorites.favoritePlaceIDs())
// Remove Eiffel Tower from favorites
TravelKit.shared.favorites.updateFavoritePlaceID("poi:530", setFavorite: false)