2013-12-13 1 views
0

이 메시지는 나를 몇 시간 동안 미치게했습니다. 라우팅 요청이 실패하는 경우 노키아지도 javascript api에서 오류가 발생합니다. 테스트를하는 동안 나는 바다의 한가운데에서 내가 넣은 임의의 다른 좌표까지 주행 경로를 제공하려고 노력했습니다. 나는 내가 할 수 있었던만큼 노키아 코드를 조사했습니다.노키아/ovi/여기지도에서 경로를 계산할 때 오류가 발생했습니다.

그래서 분명히 경로를 만들려고 노력은 실패하고이 라우팅 nlp.js에서 일부 오류 처리 코드입니다 제가 가정에 보내지는 무엇 다시

(function(){nokia.maps.net.Request.callbacks[10](11,arguments);})({"details":"NOROUTE: Request failed","additionalData":[],"type":"ApplicationError","subtype":"NoRouteFound"}) 

오는 코드입니다

qb:function(a){ 
    var b=a.details;a.additionalData&&(b+=" Key: "+a.additionalData[0].key+", Value: "+a.additionalData[0].value); 
    return{type:a.type.charAt(0).toLowerCase()+a.type.substr(1),subtype:a.subtype.charAt(0).toLowerCase()+a.subtype.substr(1),message:b}}}); 

복사본에 괄호가 잘못 붙어있을 수 있지만 다른 모든 것은 표시된대로입니다. 보시다시피 반환 된 정보에는 additionalData에 대한 빈 배열이 포함되어 있으므로 아무 것도 추출하지 않아야합니다. 그리고 a.additionalData [0] .key (undefined의 'key'속성을 읽을 수 없음)에 아무 것도 없기 때문에 오류가 발생합니다. https://js.api.here.com/ee/2.5.3/jsl.js?with=all

편집에서 JS API를 사용하여

 var router = new nokia.maps.routing.Manager(); 

     router.addObserver("state", onRouteCalculated); 

     var waypoints = new nokia.maps.routing.WaypointParameterList(); 
     waypoints.addCoordinate(new nokia.maps.geo.Coordinate(20, 54)); 
     waypoints.addCoordinate(new nokia.maps.geo.Coordinate(0.06275, 0.3966)); 

     var modes = [{ 
      type: "shortest", 
      transportModes: ["car"] 
     }]; 

     router.calculateRoute(waypoints, modes); 

:

모두에 의해 쫓겨되고 대답이 때문에 엔터프라이즈 라우팅의 응답의 버그 현재는 것이다. 아래 답변에 대한 의견을 참조하십시오.

답변

1

출발점이 사우디 아라비아 Empty Quarter의 중간 지점에 있기 때문에 오류가 발생하는 이유는 문자 그대로 도로가 몇 마일 정도 떨어져 있기 때문입니다. 라우팅 API가 시도하지만 근처에서 도로를 시작하는 도로를 찾지 못하면 오류 응답이 다시 전송됩니다.

JavaScript API은 RESTful Routing API을 둘러싼 단순한 래퍼입니다. 이미 대한 관찰자가이 아마도 "failed"

에 라우팅 관리자의 state를 설정하여 자바 스크립트 래퍼 처리됩니다

{ 
    "type":"ApplicationError", 
    "subtype":"NoRouteFound", 
    "details":"Error is NGEO_ERROR_ROUTE_NO_START_POINT", 
    "additionalData":[ 
     { 
      "key":"error_code", 
      "value":"NGEO_ERROR_ROUTE_NO_START_POINT" 
     } 
    ], 
    "metaInfo": 
    { 
     "timestamp":"2013-12-16T11:14:22.991", 
     "mapVersion":"8.30.52.113", 
     "moduleVersion":"7.2.39.0_CD-793_1", 
     "interfaceVersion":"2.4.37" 
    } 
} 

: 당신이 기본 response 보면 다음과 같은 오류가 발생합니다 그림과 같이 코드에서 state 속성, 당신은 오류의 경우를 처리하도록 확장 할 수 있습니다

onRouteCalculated = function (observedRouter, key, value) { 
     if (value == "finished") { 
      var routes = observedRouter.getRoutes(); 
      var mapRoute = new 
        nokia.maps.routing.component.RouteResultSet(routes[0]).container; 
      map.objects.add(mapRoute); 
      map.zoomTo(mapRoute.getBoundingBox(), false, "default"); 
     } else if (value == "failed") { 
      alert("The routing request failed."); 
     } 
    }; 

코드를 에로와 완벽하게 작동 example에 대한 r 핸들링은 API Explorer

+0

글쎄요. 나는 라우팅 요청이 실패 할 것으로 예상했지만 코드의 실제 오류로 인해 자바 스크립트가 충돌하기 때문에 예상 된 (그리고 아주 정상적인) 실패 상태를받지 못했다. 내가 게시 한 예상 응답을 디버깅 중에 실제로받은 응답과 비교하십시오. 유형, 하위 유형, 세부 정보 및 추가 데이터 필드에는 모두 값이 있습니다. 'additionalData'에 대한 값이 누락 된 응답을 게시했습니다. 그래서 충돌합니다. 불완전한 응답 데이터를 얻는 것처럼 보입니다. –

+0

내 코드에서 생성 된 요청은 다음과 같습니다. https://route.nlp.nokia.com/routing/6.2/calculateroute.json?routeattributes=shape&maneuverattributes=direction,shape&jsonAttributes=1&waypoint0=geo!25,54 & waypoint1 = geo! 0.06275,0.3966 & language = en-US & mode0 = 최단; car; & app_id = WgevZ2m4AF8WHx1TY6GS & app_code = G11AO2dbvCRTdCjfTf-mUw & xnlp = CL_JSMv2.5.3, SID_1E571B54-B7F4-45B2-A6B6-60CB22A07C6C & jsoncallback = (function() % 7Bnokia.maps. net.Request.callbacks % 5B4 % 5D (5, arguments); % 7D) 알다시피 additionalData에는 값이 없습니다. –

+0

다른 응답은 Enterprise Routing 6.2 또는 Standard Routing 7.2 중 무엇을 사용하는지에 따라 달라집니다. [예제] (http://developer.here.com/apiexplorer/examples/api-for-js/routing/)에 사용자의 위치를 ​​꽂았습니다. map-with-a-to-b.html). 그리고 그것은 나에게 우아하게 실패했다. 이 예제는 어떻게 당신에게 효과가 있습니까? –

관련 문제