如何将多个起点发送到查询字符串上的 Google 距离矩阵,每个起点都有自己的多个目的地
How to send multiple origins, each origin having its own multiple destinations, to Google Distance Matrix on the query-string
我正在使用 C# WebClient 和 UriBuilder class,与 Google 距离矩阵 API 通信。我的程序正在发送以逗号分隔的纬度、经度对。一个起点和多个目的地的事情正常工作:查询字符串上的目的地值只需要用横线字符“|”分隔:
&destinations=latitude1,longitude1|latitude2,longitude2...
但我想让它与多个来源一起使用,其中每个来源都有 自己的 多个目的地。那可能吗?还是 API 产生笛卡尔积,计算每个起点到每个终点的距离?
如果可以,如何在查询字符串上协调origins[i]
和destinations[i]
?
这是我的 C# 程序中的示例结构(隐藏了地理位置):
我需要将该结构转换为 API 可以在查询字符串上接受的格式,其方式是将 destinationArray[0]
与 origin[0]
和 destinationArray[1]
与origin[1]
.
这是可能的,但 Google 距离矩阵 API 会给你返回比你需要的更多的结果。所以是的,它 确实 产生笛卡尔积,但您可以从结果中提取您需要的内容。除了为每个来源发送单独的请求外,别无他法。
此处记录了响应的结构https://developers.google.com/maps/documentation/distance-matrix/overview#distance-matrix-responses
TLDR 版本如下:
要求:
origins: o1|o2
destinations: d1|d2
结果将是 structured/ordered,如:
{
// stuff removed for brevity
// ...
"rows": [
// row for the first origin (o1)
{
"elements": [
// element for the first destination (d1)
{
// stuff removed for brevity
},
// element for the second destination (d2)
{
// stuff removed for brevity
}
]
},
// row for the second origin (o2)
{
"elements": [
// element for the first destination (d1)
{
// stuff removed for brevity
},
// element for the second destination (d2)
{
// stuff removed for brevity
}
]
},
}
因此,行是根据 origins
参数中的来源顺序排序的。每行内的元素根据destinations
参数中目的地的顺序排序。
我正在使用 C# WebClient 和 UriBuilder class,与 Google 距离矩阵 API 通信。我的程序正在发送以逗号分隔的纬度、经度对。一个起点和多个目的地的事情正常工作:查询字符串上的目的地值只需要用横线字符“|”分隔:
&destinations=latitude1,longitude1|latitude2,longitude2...
但我想让它与多个来源一起使用,其中每个来源都有 自己的 多个目的地。那可能吗?还是 API 产生笛卡尔积,计算每个起点到每个终点的距离?
如果可以,如何在查询字符串上协调origins[i]
和destinations[i]
?
这是我的 C# 程序中的示例结构(隐藏了地理位置):
我需要将该结构转换为 API 可以在查询字符串上接受的格式,其方式是将 destinationArray[0]
与 origin[0]
和 destinationArray[1]
与origin[1]
.
这是可能的,但 Google 距离矩阵 API 会给你返回比你需要的更多的结果。所以是的,它 确实 产生笛卡尔积,但您可以从结果中提取您需要的内容。除了为每个来源发送单独的请求外,别无他法。
此处记录了响应的结构https://developers.google.com/maps/documentation/distance-matrix/overview#distance-matrix-responses
TLDR 版本如下:
要求:
origins: o1|o2
destinations: d1|d2
结果将是 structured/ordered,如:
{
// stuff removed for brevity
// ...
"rows": [
// row for the first origin (o1)
{
"elements": [
// element for the first destination (d1)
{
// stuff removed for brevity
},
// element for the second destination (d2)
{
// stuff removed for brevity
}
]
},
// row for the second origin (o2)
{
"elements": [
// element for the first destination (d1)
{
// stuff removed for brevity
},
// element for the second destination (d2)
{
// stuff removed for brevity
}
]
},
}
因此,行是根据 origins
参数中的来源顺序排序的。每行内的元素根据destinations
参数中目的地的顺序排序。