Google Directions不返回优化路线

时间:2016-01-12 16:27:53

标签: ios google-maps optimization maps

我有一个应用程序,允许用户使用原点/目标点和两者之间的航点生成路线。如果我提交没有优化的url:true,我会得到一条折线,返回到发送顺序中的每个航点。

如果我在查询中添加了optimize:true,那么在这种情况下,我得到了第二个路点(zero_results)的错误,这会导致应用程序崩溃。在两个提交中,我发送地址城市,每个航路点的ST拉链。

我的初始网址(解码)看起来像这样:

https://maps.googleapis.com/maps/api/directions/json?origin=115 E Main St, Monrovia, IN 46157, USA&destination=115 E Main St, Monrovia, IN 46157, USA&waypoints=234 E SOUTHERN AVE INDIANAPOLIS, IN 46225|208 MEADOW DR DANVILLE, IN 46122|485 N INDIANA AVE SELLERSBURG, IN 47172|1111 RONALD REAGAN PKWY STE C1400 AVON, IN 46123|651 S CLARIZZ BLVD BLOOMINGTON, IN 47401&key=KEY GOES HERE

部分JSON返回:

"geocoded_waypoints" : [
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJXZBHhT-WbIgRPl_LqYqD4hc",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJuZ2FWEBaa4gRuP_y0qBGYx0",
         "types" : [ "premise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "EiYyMDggTWVhZG93IERyLCBEYW52aWxsZSwgSU4gNDYxMjIsIFVTQQ",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJ-2zWpAhwaYgRbGCpQlasryo",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "EjIxMTExIFJvbmFsZCBSZWFnYW4gUGt3eSBjMTQwMCwgQXZvbiwgSU4gNDYxMjMsIFVTQQ",
         "types" : [ "subpremise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJV8KIRiNkbIgRZVxX1emoBQU",
         "types" : [ "premise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJXZBHhT-WbIgRPl_LqYqD4hc",
         "types" : [ "street_address" ]
      }
   ],

我的优化网址如下:

https://maps.googleapis.com/maps/api/directions/json?origin=115 E Main St, Monrovia, IN 46157, USA&destination=115 E Main St, Monrovia, IN 46157, USA&waypoints=optimized:true|234 E SOUTHERN AVE INDIANAPOLIS, IN 46225|208 MEADOW DR DANVILLE, IN 46122|485 N INDIANA AVE SELLERSBURG, IN 47172|1111 RONALD REAGAN PKWY STE C1400 AVON, IN 46123|651 S CLARIZZ BLVD BLOOMINGTON, IN 47401&key=KEY GOES HERE

Full JSON:

{
   "geocoded_waypoints" : [
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJXZBHhT-WbIgRPl_LqYqD4hc",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "ZERO_RESULTS"
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJuZ2FWEBaa4gRuP_y0qBGYx0",
         "types" : [ "premise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "EiYyMDggTWVhZG93IERyLCBEYW52aWxsZSwgSU4gNDYxMjIsIFVTQQ",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJ-2zWpAhwaYgRbGCpQlasryo",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "EjIxMTExIFJvbmFsZCBSZWFnYW4gUGt3eSBjMTQwMCwgQXZvbiwgSU4gNDYxMjMsIFVTQQ",
         "types" : [ "subpremise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJV8KIRiNkbIgRZVxX1emoBQU",
         "types" : [ "premise" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJXZBHhT-WbIgRPl_LqYqD4hc",
         "types" : [ "street_address" ]
      }
   ],
   "routes" : [],
   "status" : "NOT_FOUND"
}

我不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

您应该通过optimize:true而不是optimized:true

当我比较您提供的2个网址时,这是工作网址。

https://maps.googleapis.com/maps/api/directions/json?origin=115%20E%20Main%20St,%20Monrovia,%20IN%2046157,%20USA&destination=115%20E%20Main%20St,%20Monrovia,%20IN%2046157,%20USA&waypoints=optimize:true|234%20E%20SOUTHERN%20AVE%20INDIANAPOLIS,%20IN%2046225|208%20MEADOW%20DR%20DANVILLE,%20IN%2046122|485%20N%20INDIANA%20AVE%20SELLERSBURG,%20IN%2047172|1111%20RONALD%20REAGAN%20PKWY%20STE%20C1400%20AVON,%20IN%2046123|651%20S%20CLARIZZ%20BLVD%20BLOOMINGTON,%20IN%2047401
相关问题