如何在iOS中使用谷歌地图显示多个目的地的单一路线
假设我有一个3个位置的列表-a、B和C,我正在尝试一次性找到每个位置之间的最短驾驶距离: A到B A到C B到A B到C C到A 从C到B 我需要这100个不同的位置,我正试图找到最好的方式来获得这些信息。如果必须解决这个问题,那么我需要找到一种方法 A到B A到C如何在iOS中使用谷歌地图显示多个目的地的单一路线,ios,objective-c,google-maps,google-distancematrix-api,google-maps-sdk-ios,Ios,Objective C,Google Maps,Google Distancematrix Api,Google Maps Sdk Ios,假设我有一个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。我认为距离矩阵API是你要寻找的最隐秘的东西。请参阅此处的文档: 请注意,这肯定不是你想要的,但它是谷歌提供的最接近的东西。请参见请求示例: 这将为您提供从所有起点到所有目的地的距离。为了让
分别是B到A,B到C,C到A,C到B。我认为距离矩阵API是你要寻找的最隐秘的东西。请参阅此处的文档: 请注意,这肯定不是你想要的,但它是谷歌提供的最接近的东西。请参见请求示例: 这将为您提供从所有起点到所有目的地的距离。为了让它与您的用例一起工作,您需要让起点和目的地与我上面的示例中的相同。在我的示例中,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的使用限制:
对于标准项目,每个请求最多可以有100个元素。请注意,要获取元素,您需要将起点数乘以目的地数。对于标准项目,您可以有10个目的地和10个起点。也就是说,您无法在一个请求中对100个位置执行此操作。你将需要做10批的位置,除非你有一个溢价项目。对于高级项目,您可以遵循相同的逻辑,但同时使用25个位置
我只是想让你知道我能想到的最接近你想要的解决方案。我希望这有帮助 不知道MapsAPI是否为此提供了服务,但这是一个众所周知的信息技术问题。这就是所谓的旅行推销员问题。NP中的一个难题。阅读更多关于它的内容。至少如果我知道你想找到最短的路线,你需要澄清你的问题,展示你的尝试。你想解决什么问题?我猜最短路径(如果是的话,查Dijkstra),@Blackam已经去了TSP。或者这更像是一个谷歌API的问题。