我们说我有3个地点的列表 - A,B和C,我正在尝试一次性找到每个地点之间的最短行车距离:
A到B. A到C. B到A. B到C. C到A. C到B
我需要在100个不同的位置使用此功能,我正在尝试找到获取此信息的最佳方式。如果必须解决这个问题,那么我需要一种方法来查找 A到B. A到C
并且分别为B至A,B至C,并且分别为C至A,C至B.
答案 0 :(得分:1)
我相信您正在寻找的壁橱是Distance Matrix API。请参阅此处的文档:
https://developers.google.com/maps/documentation/distance-matrix/start
请注意,这绝对不是您想要的,但它是Google提供的最接近的东西。请参阅示例请求:
这将为您提供从所有来源到所有目的地的距离。要使它与您的用例一起使用,您需要使源和目标与上面的示例相同。在我的示例中,API返回以下内容:
{
"destination_addresses" : [ "Washington, DC, USA", "Houston, TX, USA", "New York, NY, USA" ],
"origin_addresses" : [ "Washington, DC, USA", "Houston, TX, USA", "New York, NY, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "1 ft",
"value" : 0
},
"duration" : {
"text" : "1 min",
"value" : 0
},
"status" : "OK"
},
{
"distance" : {
"text" : "1,408 mi",
"value" : 2266226
},
"duration" : {
"text" : "20 hours 22 mins",
"value" : 73331
},
"status" : "OK"
},
{
"distance" : {
"text" : "225 mi",
"value" : 361722
},
"duration" : {
"text" : "3 hours 48 mins",
"value" : 13672
},
"status" : "OK"
}
]
},
{
"elements" : [
{
"distance" : {
"text" : "1,409 mi",
"value" : 2266981
},
"duration" : {
"text" : "20 hours 28 mins",
"value" : 73678
},
"status" : "OK"
},
{
"distance" : {
"text" : "1 ft",
"value" : 0
},
"duration" : {
"text" : "1 min",
"value" : 0
},
"status" : "OK"
},
{
"distance" : {
"text" : "1,628 mi",
"value" : 2620605
},
"duration" : {
"text" : "23 hours 44 mins",
"value" : 85438
},
"status" : "OK"
}
]
},
{
"elements" : [
{
"distance" : {
"text" : "226 mi",
"value" : 364085
},
"duration" : {
"text" : "3 hours 53 mins",
"value" : 13965
},
"status" : "OK"
},
{
"distance" : {
"text" : "1,627 mi",
"value" : 2618345
},
"duration" : {
"text" : "23 hours 43 mins",
"value" : 85385
},
"status" : "OK"
},
{
"distance" : {
"text" : "1 ft",
"value" : 0
},
"duration" : {
"text" : "1 min",
"value" : 0
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
您可以看到成功返回从所有位置到所有三个位置的距离。请记住此API的使用限制:
https://developers.google.com/maps/documentation/distance-matrix/usage-limits
使用标准项目,每个请求最多可以包含100个元素。请注意,要获取元素,请将原点数乘以目标数。通过标准项目,您可以拥有10个目的地和10个起源。话虽如此,您将无法在单个请求中为100个位置执行此操作。除非您有高级项目,否则您需要分批进行10个地点。使用高级项目,您可以遵循相同的逻辑,但同时使用25个位置。
我只是想让你知道我能想到的最接近的解决方案。我希望这有帮助!