go-here
Go client library around the HERE location based APIs
About go-here
go-here

| Build Type | Status |
|---|---|
| Linux | |
| Windows |
go-here is a Go client library for the HERE API. HERE provides location based services. HERE exposes rest APIs and this library is intended to make it even easier for Go programmers to use. Check the usage section or try the examples to see how to access the HERE API.
Features
- HERE REST API:
- Routing
- Geocoding
- Reverse Geocoding
- Geocoding Autocomplete
- Places
Will add rest of the apis in time and all contributions are welcome.
Install
go get github.com/abdullahselek/go-here/here
To install go-here and it's dependencies with a single line
go get -t github.com/abdullahselek/go-here/here
Documentation
Read GoDoc
Usage
The here package provides a Client for accessing the HERE API and each API service requires an AppID and AppKey. Here are some example requests.
var httpClient = &http.Client{
Timeout: time.Second * 15,
}
// Routing client
routingClient := here.NewRoutingClient(httpClient)
routingParams := routingClient.Routing.CreateRoutingParams([2]float32{52.5160, 13.3779}, [2]float32{52.5206, 13.3862}, "appID", []here.Enum{here.RouteMode.Fastest, here.RouteMode.Car, here.RouteMode.TrafficDefault})
routes, httpResponse, err := routingClient.Routing.Route(&routingParams)
// Finding Address in boundingbox
geocodingClient := here.NewGeocodingClient(httpClient)
addressBoundingBoxParams := here.AddressInBoundingBoxParameters{SearchText: "1 main", MapView: geocodingClient.Geocoding.CreateMapView([2]float32{42.3902, -71.1293}, [2]float32{42.3312, -71.0228}), Gen: 9, APIKey: "appKey"}
geocodingResponse, httpResponse, err := geocodingClient.Geocoding.AddressInBoundingBox(&addressBoundingBoxParams)
// Partial address information
partialAddressInformationParams := here.PartialAddressInformationParameters{HouseNumber: 425, Street: "randolph", City: "chicago", Country: "usa", Gen: 9, APIKey: "apiKey"}
geocodingResponse, httpResponse, err = geocodingClient.Geocoding.PartialAddressInformation(&partialAddressInformationParams)
// Reverse geocoding for address details
reverseGeocodingClient := here.NewReverseGeocodingClient(httpClient)
locationParameters := reverseGeocodingClient.ReverseGeocoding.CreateAddressFromLocationParameters([2]float32{42.3902, -71.1293}, 250, here.ReverseGeocodingMode.RetrieveAddresses, 1, 9, "apiKey")
geocodingResponse, httpResponse, err = reverseGeocodingClient.ReverseGeocoding.AddressFromLocation(&locationParameters)
// Reverse geocoding for landmark details
landmarkParameters := reverseGeocodingClient.ReverseGeocoding.CreateLandmarksParameters([2]float32{42.3902, -71.1293}, 1, 9, "apiKey")
geocodingResponse, httpResponse, err = reverseGeocodingClient.ReverseGeocoding.Landmarks(&landmarkParameters)
// Complete location details
autocompleteGeocodingClient := here.NewAutocompleteGeocodingClient(httpClient)
suggestionsParameters := autocompleteGeocodingClient.AutocompleteGeocoding.CreateDetailsForSuggestionParameters("Pariser 1 Berl", "apiKey")
autocompleteGeocodingResponse, httpResponse, err := autocompleteGeocodingClient.AutocompleteGeocoding.DetailsForSuggestion(&suggestionsParameters)
Roadmap
- Add new clients for other endpoints.
Use parameter structs on functions.
License
Frequently Asked Questions
What is go-here?
go-here is a Third-party APIs library for the Go programming language. Go client library around the HERE location based APIs
How do I install go-here?
Install go-here with the Go module system using `go get abdullahselek/go-here`. Check the repository for the current installation instructions.
What category does go-here belong to?
go-here is listed under Third-party APIs, specifically Third-party APIs.