如何在iOS中使用谷歌地图显示多个目的地的单一路线

如何在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是你要寻找的最隐秘的东西。请参阅此处的文档: 请注意,这肯定不是你想要的,但它是谷歌提供的最接近的东西。请参见请求示例: 这将为您提供从所有起点到所有目的地的距离。为了让

假设我有一个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是你要寻找的最隐秘的东西。请参阅此处的文档:

请注意,这肯定不是你想要的,但它是谷歌提供的最接近的东西。请参见请求示例:

这将为您提供从所有起点到所有目的地的距离。为了让它与您的用例一起工作,您需要让起点和目的地与我上面的示例中的相同。在我的示例中,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的问题。