Skip to content

AppsynthAsia/google-places-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Places API Client for Go

Build Status GoDoc

A Go client for the Google Places API. A work in progress, contributions welcome.

To install this package, run:

go get gopkg.in/maxhawkins/google-places-api.v1/places

Example

package main

import (
    "fmt"
    "net/http"
    "time"

    "gopkg.in/maxhawkins/google-places-api.v1/places"
)

func main() {
    service := places.NewService(http.DefaultClient, "<your api key>")

    call := service.Nearby(37.7833, -122.4167) // San Francisco
    call.Types = append(call.Types, places.Cafe)
    call.Radius = 500

    resp, err := call.Do()
    if places.IsZeroResults(err) {
        fmt.Println("no results")
        return
    }
    if err != nil {
        panic(err)
    }

    results := resp.Results
    token := resp.NextPageToken

    for token != "" {
        time.Sleep(2 * time.Second) // Rate limit

        call.PageToken = token
        resp, err := call.Do()
        if err != nil {
            panic(err)
        }

        token = resp.NextPageToken
        results = append(results, resp.Results...)
    }

    for _, result := range results {
        fmt.Println(result.Name)
    }
}

Gotchas

  • This package is a work in progress. Not all API calls are implemented.
  • There is a short delay between when a NextPageToken is issued, and when it will become valid. Requesting the next page before it is available will return an INVALID_REQUEST response. Retrying the request with the same NextPageToken will return the next page of results.

What's done

  • Nearby Search
  • Place Details
  • Radar Search
  • Text Search

What's not done

  • Place Add
  • Place Autocomplete
  • Place Delete
  • Place Photos
  • Query Autocomplete
  • More Examples

About

A Google Places API Client for Golang

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%