curl --request POST \
--url https://api.aisa.one/apis/v1/graphhopper/matrix-post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"points": [
[
123
]
],
"profile": "car",
"out_arrays": [
"times",
"distances"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload = {
"points": [[123]],
"profile": "car",
"out_arrays": ["times", "distances"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({points: [[123]], profile: 'car', out_arrays: ['times', 'distances']})
};
fetch('https://api.aisa.one/apis/v1/graphhopper/matrix-post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/graphhopper/matrix-post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'points' => [
[
123
]
],
'profile' => 'car',
'out_arrays' => [
'times',
'distances'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload := strings.NewReader("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"info": {
"took": 123,
"copyrights": [
"<string>"
]
},
"hints": [
{
"message": "<string>",
"details": "<string>",
"point_pairs": [
[
123
]
],
"invalid_to_points": [
123
],
"invalid_from_points": [
123
]
}
],
"times": [
[
123
]
],
"weights": [
[
123
]
],
"distances": [
[
123
]
]
}Calculate Matrix
curl --request POST \
--url https://api.aisa.one/apis/v1/graphhopper/matrix-post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"points": [
[
123
]
],
"profile": "car",
"out_arrays": [
"times",
"distances"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload = {
"points": [[123]],
"profile": "car",
"out_arrays": ["times", "distances"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({points: [[123]], profile: 'car', out_arrays: ['times', 'distances']})
};
fetch('https://api.aisa.one/apis/v1/graphhopper/matrix-post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/graphhopper/matrix-post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'points' => [
[
123
]
],
'profile' => 'car',
'out_arrays' => [
'times',
'distances'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload := strings.NewReader("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"info": {
"took": 123,
"copyrights": [
"<string>"
]
},
"hints": [
{
"message": "<string>",
"details": "<string>",
"point_pairs": [
[
123
]
],
"invalid_to_points": [
123
],
"invalid_from_points": [
123
]
}
],
"times": [
[
123
]
],
"weights": [
[
123
]
],
"distances": [
[
123
]
]
}请求规范
- 方法与路径: POST /apis/v1/graphhopper/matrix-post
- 可用状态: enabled
- 请求 URL 模板:
https://api.aisa.one/apis/v1/graphhopper/matrix-post - Runtime 事实版本: 6a72f8e2fa7fb1c29379e3b24b3a247c8428a3b6ed621b3f84f84e75cb0de2bc
{
"operationId": "graphhopper.matrix-post",
"method": "POST",
"path": "/apis/v1/graphhopper/matrix-post",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"points": {
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"maxItems": 20,
"minItems": 2,
"type": "array",
"description": "Coordinates for symmetric matrix as [longitude, latitude]."
},
"profile": {
"enum": [
"car"
],
"type": "string",
"description": "Routing profile ID (e.g. 'car', 'bike', 'foot')."
},
"curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per point ('any','left','right') for symmetrical."
},
"fail_fast": {
"type": "boolean",
"default": true,
"description": "If false, return null for unreachable entries and include hints."
},
"to_points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "Destination coordinates as [longitude, latitude]. Provide with from_points."
},
"out_arrays": {
"type": "array",
"items": {
"enum": [
"weights",
"times",
"distances"
],
"type": "string"
},
"examples": [
[
"times",
"distances"
]
],
"description": "Which matrices to include."
},
"from_points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "Origin coordinates as [longitude, latitude]. Provide with to_points."
},
"point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per point for snapping preference (symmetrical)."
},
"to_curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per destination ('any','left','right')."
},
"from_curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per origin ('any','left','right')."
},
"to_point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per destination for snapping preference."
},
"from_point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per origin for snapping preference."
},
"snap_preventions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Feature types to avoid for snapping (e.g. 'toll', 'ferry')."
}
},
"required": [
"out_arrays",
"points",
"profile"
]
}
}
}
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "response_units",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"estimate_source": "unavailable",
"estimate_unavailable_reason": "reference_request_unavailable",
"evidence_source": "response_body",
"maximum_units": 10000000,
"unit": "provider_credit",
"unit_rate_usd": 1e-06
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
费用与请求规则
当前未提供请求参考价格;请使用接口支持的报价功能确认费用。 声明的单位费率:每 provider_credit $0.000001 USD。 最终费用以账户适用价格及实际结算为准。 公开参考值不是你的账户报价或最终扣费。对于支持 X-AISA-Cost-Mode: quote 的接口,执行前请针对完整请求获取免费报价;执行后通过响应费用元数据和 Usage Logs 核对结算费用。1 USD 等于 1,000,000 个整数 micro-USD。- 声明的单位费率(USD): 1e-06
- 计费单位: provider_credit
- 计费依据: response_units
- 公开参考倍率: 1.0
- 声明的最大计数或单位数: 10000000
- 结算证据来源: response_body
授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
请求体
Coordinates for symmetric matrix as [longitude, latitude].
2 - 20 elementsRouting profile ID (e.g. 'car', 'bike', 'foot').
car Which matrices to include.
weights, times, distances ["times", "distances"]
Curbside per point ('any','left','right') for symmetrical.
any, left, right If false, return null for unreachable entries and include hints.
Destination coordinates as [longitude, latitude]. Provide with from_points.
Origin coordinates as [longitude, latitude]. Provide with to_points.
Hint per point for snapping preference (symmetrical).
Curbside per destination ('any','left','right').
any, left, right Curbside per origin ('any','left','right').
any, left, right Hint per destination for snapping preference.
Hint per origin for snapping preference.
Feature types to avoid for snapping (e.g. 'toll', 'ferry').