Add tomtom routing test
This commit is contained in:
parent
c1825d8ae0
commit
de0d112630
1 changed files with 63 additions and 0 deletions
63
tomtom/example/geocode-and-route/main.go
Normal file
63
tomtom/example/geocode-and-route/main.go
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/tomtom"
|
||||
)
|
||||
|
||||
func main() {
|
||||
client := tomtom.NewClient()
|
||||
|
||||
// Example 1: Geocode a series of addresses
|
||||
waypoints := []string{
|
||||
"1737 W Houston Ave, Visalia, CA 93291",
|
||||
"1138 W Prescott Ave, Visalia, CA 93291",
|
||||
"3228 W Clinton Ct, Visalia, CA 93291",
|
||||
"3800 N Mendonca St, Visalia, CA 93291",
|
||||
}
|
||||
coords := make([]tomtom.Point, 0)
|
||||
for _, wp := range waypoints {
|
||||
geocode, err := client.Geocode(wp)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to geocode '%s': %w", wp, err)
|
||||
}
|
||||
if len(geocode.Results) == 0 {
|
||||
log.Fatal("Failed to get any results for '%s'", wp)
|
||||
}
|
||||
result := geocode.Results[0]
|
||||
coords = append(coords, result.Position.AsPoint())
|
||||
log.Printf("Geocoded %s to %f, %f", wp, result.Position.Longitude, result.Position.Latitude)
|
||||
}
|
||||
// Example 2: Calculate a simple route through them
|
||||
traffic := false
|
||||
routeRequest := &tomtom.CalculateRouteRequest{
|
||||
Locations: coords,
|
||||
Traffic: &traffic,
|
||||
TravelMode: tomtom.TravelModeCar,
|
||||
RouteType: tomtom.RouteTypeFastest,
|
||||
}
|
||||
|
||||
//client.SetDebug(true)
|
||||
routeResp, err := client.CalculateRoute(routeRequest)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
all_points := make([]tomtom.Point, 0)
|
||||
all_stops := make([]tomtom.Point, 0)
|
||||
for i, route := range routeResp.Routes {
|
||||
s := route.Summary
|
||||
log.Printf("%d: %d meters, %d seconds, %s traffic delay", i, s.LengthInMeters, s.TravelTimeInSeconds, s.TrafficDelayInSeconds)
|
||||
for _, leg := range route.Legs {
|
||||
all_stops = append(all_stops, leg.Points[0])
|
||||
for _, p := range leg.Points {
|
||||
all_points = append(all_points, p)
|
||||
}
|
||||
}
|
||||
}
|
||||
lines := tomtom.PolylineToGeoJSON(all_points)
|
||||
log.Printf("%s", lines)
|
||||
stops := tomtom.PolylineToGeoJSON(all_stops)
|
||||
log.Printf("%s", stops)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue