Tech. Forum 개발자들을 위한 정보 공유의 장입니다
닫기

Tech.Forum

findpathdataAllType 메소드에 관해 질문드립니다.

#1

현재 startPoint2에서 시작하여 endPoint2로 끝나는 경로에 대한 totalTime을 받아와서 행렬에 저장하는 메소드를 구현하고있습니다.
아래의 (1번) 메소드를 Log.w로 출력시 0이 두번 출력되는데(2번) 맨처음에 0이 출력되는 이유를 알고싶습니다! 감사합니다.

1번
private void drawAdjMat() {
new Thread() {
public void run() {
for (
int i = 0; i < pointLat.size(); i++) {
for (int j = 0; j < pointLat.size(); j++) {

                    TMapPoint startPoint2 = new TMapPoint(pointLat.get(i), pointLng.get(i)); //출발지 위도 경도 값을 변수로 받아오기
                    TMapPoint endPoint2 = new TMapPoint(pointLat.get(j), pointLng.get(j)); //목적지
                    tMapData = new TMapData();


                    tMapData.findPathDataAllType(TMapData.TMapPathType.CAR_PATH, startPoint2, endPoint2, new TMapData.FindPathDataAllListenerCallback() {
                        @Override
                        public void onFindPathDataAll(Document document) {Element root = document.getDocumentElement();
                            NodeList nodeListPlacemark = root.getElementsByTagName("Document");


                            NodeList pathTime = root.getElementsByTagName("tmap:totalTime");
                            totalTime = Double.valueOf(pathTime.item(0).getChildNodes().item(0).getNodeValue());


                        }
                    });
                    Log.w("totalTime", String.valueOf(totalTime));


                        try {
                            adjMatrix[i][j] = totalTime;
                        } catch (NullPointerException e) {
                            e.printStackTrace();
                        }
                        //Log.w("adjMatrix", String.valueOf(adjMatrix[i][j]));
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }

                }
            }
        }
    }.start();
}

2번
2019-05-04 22:08:55.951 10260-10270/com.example.routeexam W/System: A resource failed to call end.
2019-05-04 22:09:10.381 10260-10394/com.example.routeexam W/totalTime: 0.0
2019-05-04 22:09:10.883 10260-10394/com.example.routeexam W/totalTime: 0.0
2019-05-04 22:09:11.385 10260-10394/com.example.routeexam W/totalTime: 31.0
2019-05-04 22:09:11.887 10260-10394/com.example.routeexam W/totalTime: 20.0
2019-05-04 22:09:12.389 10260-10394/com.example.routeexam W/totalTime: 376.0
.
.
.
.
.

0 Likes

#2

안녕하세요.
T map API 운영담당자 입니다.

문의주신 소스를 검토해본 결과 findPathDataAllType 함수에서 자동차 경로안내를 요청한 이후, Callback 함수로 결과값이 넘어오기전에 로그를 찍은 것이 원인으로 파악됩니다.

로그의 위치를 Callback인 onFindPathDataAll 함수로 이동한 이후 진행하시면 원하시는 시간값을 얻으실 수 있습니다.

감사합니다.

0 Likes