2017-03-13 10 views
0

원본 좌표와 대상 좌표 사이의 경로를 가져 오려고합니다.iOS) google 방향에서 두 좌표로가는 길 없음 api

나는 stackoverflow을 참조했다.

let url = "https://maps.googleapis.com/maps/api/directions/json?origin=37.496375,126.9546903&destination=37.48121,126.9505233&mode=walking&key=MY_KEY" 
Alamofire.request(url).responseJSON 
{ response in 
print(response.request) // original URL request 
print(response.response) // HTTP URL response 
print(response.data)  // server data 
print(response.result) // result of response serialization 

let json = JSON(data: response.data!) 
let routes = json["routes"].arrayValue 

for route in routes 
{ 
    let routeOverviewPolyline = route["overview_polyline"].dictionary 
    let points = routeOverviewPolyline?["points"]?.stringValue 
    let path = GMSPath.init(fromEncodedPath: points!) 
    let polyline = GMSPolyline.init(path: path) 
    polyline.map = self.mapView 
} 
} 

그러나 결과적으로 response.data은 다음과 같습니다 :

그래서 내 코드는 다음과 같습니다이 문제에 대한

{ 
"status" : "ZERO_RESULTS", 
"available_travel_modes" : 
[ 
"TRANSIT" 
    ], 
"geocoded_waypoints" : [ 
{}, 
{}],"routes" : []} 

, 나는 그것을 검색하고이 때 발생 될 수 있음을 발견 좌표를 주소로 변환 할 수 없습니다.

하지만 두 좌표가 'CLGeocoder'(reverseGeocodeLocation)에 의해 올바른 주소로 변환되었는지 확인했습니다.

마지막으로, 'maps.google.com'에서 동일한 좌표가 지정되고 경로가 나에게 표시되는지 확인했습니다.

이 문제를 어떻게 해결할 수 있습니까? 운전에

+0

&mode=transit에 다른 원산지, 목적지와 경로를받을 수 있나요? –

+0

다른 쌍 (new_origin, new_destination)을 테스트했지만 그 결과가 동일하므로 요청한 정확한 URL을 업데이트합니다. – LKM

답변

0

available_travel_modes 같은 사용 martix API를 사용할 수 여행 모드의 배열을 포함을 제공합니다. 요청이 이동 모드를 지정하고 결과를 얻지 못하면이 필드가 반환됩니다. 이 배열에는 지정된 경유지 세트의 국가에있는 에 사용할 수있는 여행 모드가 포함되어 있습니다.

귀하의 응답은 그래서 변화하려고

"available_travel_modes":["TRANSIT"] 

로 반환 mode=walking

+0

'대중 교통'옵션을 이용해 주셔서 감사합니다. 폴리 라인은 실제 도보 길을 조금 무시합니다. – LKM

+0

스크린 샷을 첨부 할 수 있습니까? –

+0

예,하지만 버스 노선을 반영하고 있기 때문에 생각합니다 ...이 복잡한 정보를 분석하기가 어렵습니다. – LKM