Popularity
0.9
Declining
Activity
7.4
Declining
6
1
1

Programming language: Go
Tags: Third-party APIs    

go-here alternatives and similar packages

Based on the "Third-party APIs" category

Do you think we are missing an alternative of go-here or a related project?

Add another 'Third-party APIs' Package

README

go-here codecov GoDoc Go Report Card

Build Type Status
Linux Build Status
Windows Build status

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

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", "appCode", []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, AppID: "appID", AppCode: "appCode"}
geocodingResponse, httpResponse, err := geocodingClient.Geocoding.AddressInBoundingBox(&addressBoundingBoxParams)

// Partial address information
partialAddressInformationParams := here.PartialAddressInformationParameters{HouseNumber: 425, Street: "randolph", City: "chicago", Country: "usa", Gen: 9, AppID: "appID", AppCode: "appCode"}
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, "appID", "appCode")
geocodingResponse, httpResponse, err := reverseGeocodingClient.ReverseGeocoding.AddressFromLocation(&locationParameters)

// Reverse geocoding for landmark details
landmarkParameters := reverseGeocodingClient.ReverseGeocoding.CreateLandmarksParameters([2]float32{42.3902, -71.1293}, 1, 9, "appID", "appCode")
geocodingResponse, httpResponse, err := reverseGeocodingClient.ReverseGeocoding.Landmarks(&landmarkParameters)

// Complete location details
autocompleteGeocodingClient := here.NewAutocompleteGeocodingClient(httpClient)
suggestionsParameters := autocompleteGeocodingClient.AutocompleteGeocoding.CreateDetailsForSuggestionParameters("Pariser 1 Berl", "appID", "appCode")
autocompleteGeocodingResponse, httpResponse, err := autocompleteGeocodingClient.AutocompleteGeocoding.DetailsForSuggestion(&suggestionsParameters)

Roadmap

  • Add new clients for other endpoints.
  • Use parameter structs on functions.

License

MIT License


*Note that all licence references and agreements mentioned in the go-here README section above are relevant to that project's source code only.