func main() { flag.Parse() var client *maps.Client var err error if *apiKey != "" { client, err = maps.NewClient(maps.WithAPIKey(*apiKey)) } else if *clientID != "" || *signature != "" { client, err = maps.NewClient(maps.WithClientIDAndSignature(*clientID, *signature)) } else { usageAndExit("Please specify an API Key, or Client ID and Signature.") } check(err) r := &maps.PlacePhotoRequest{ PhotoReference: *photoreference, MaxHeight: uint(*maxheight), MaxWidth: uint(*maxwidth), } resp, err := client.PlacePhoto(context.Background(), r) check(err) log.Printf("Content-Type: %v\n", resp.ContentType) img, err := resp.Image() check(err) log.Printf("Image bounds: %v", img.Bounds()) if *basename != "" { filename := fmt.Sprintf("%s.%s", *basename, "jpg") f, err := os.Create(filename) check(err) err = jpeg.Encode(f, img, &jpeg.Options{Quality: 85}) check(err) log.Printf("Wrote image to %s\n", filename) } }