Skip to content
GuidesPlaygroundDashboard

Calculate a distance matrix between points

client.Routing.Matrix(ctx, body) (*MatrixResult, error)
POST/api/v1/matrix

Calculate a distance matrix between points

ParametersExpand Collapse
body RoutingMatrixParams
MatrixRequest param.Field[MatrixRequest]
ReturnsExpand Collapse
type MatrixResult struct{…}
Distances [][]float64

Distance matrix (meters), origins x destinations

Durations [][]float64

Duration matrix (seconds), origins x destinations

Calculate a distance matrix between points

package main

import (
  "context"
  "fmt"

  "github.com/plazafyi/plaza-go"
  "github.com/plazafyi/plaza-go/option"
)

func main() {
  client := githubcomplazafyiplazago.NewClient(
    option.WithAPIKey("My API Key"),
  )
  matrixResult, err := client.Routing.Matrix(context.TODO(), githubcomplazafyiplazago.RoutingMatrixParams{
    MatrixRequest: githubcomplazafyiplazago.MatrixRequestParam{
      Destinations: githubcomplazafyiplazago.F(githubcomplazafyiplazago.GeoJsonGeometryParam{
        Coordinates: githubcomplazafyiplazago.F[githubcomplazafyiplazago.GeoJsonGeometryCoordinatesUnionParam](githubcomplazafyiplazago.GeoJsonGeometryCoordinatesArrayParam([]float64{0.000000})),
        Type: githubcomplazafyiplazago.F(githubcomplazafyiplazago.GeoJsonGeometryTypePoint),
      }),
      Origins: githubcomplazafyiplazago.F(githubcomplazafyiplazago.GeoJsonGeometryParam{
        Coordinates: githubcomplazafyiplazago.F[githubcomplazafyiplazago.GeoJsonGeometryCoordinatesUnionParam](githubcomplazafyiplazago.GeoJsonGeometryCoordinatesArrayParam([]float64{0.000000})),
        Type: githubcomplazafyiplazago.F(githubcomplazafyiplazago.GeoJsonGeometryTypePoint),
      }),
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", matrixResult.Distances)
}
{
  "distances": [
    [
      0
    ]
  ],
  "durations": [
    [
      0
    ]
  ]
}
Returns Examples
{
  "distances": [
    [
      0
    ]
  ],
  "durations": [
    [
      0
    ]
  ]
}