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

Tech.Forum

tmap api getdistance 에 거리가 출력되지 않습니다

#1

현재 파이널 포인트에 다섯 지점을 넣어놓았습니다. 그리고 이 지점들 사이의 거리를 전부 구하기 위해서 두 개의 함수를 사용했습니다. 근데 로그의 결과를 보니 getdistance함수에서 나오는 값이 0이 계속 나옵니다…

0 Likes

#2

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

보내주신 내용을 확인해본 결과 403 에러가 발생한 것으로 파악됩니다.

현재 T map API를 무료로 이용하시는 경우 경로안내 관련 API는 초당 2건의 건수 제한이 걸려 있습니다.

초당 2건 이상의 요청을 하신 것이 원인으로 파악됩니다.

만약 유료이용 고객이시라면 appKey를 발급받은 프로젝트명을 알려주시면 확인 후 다시 답변드리도록 하겠습니다.

감사합니다.

0 Likes

#3

초당 2건이면 초당 1건만 검사가 가능하다는 것인가요?
어떻게 수정해야할지 몰라서 함수를 이렇게 수정했는데 그래도 값이 중복됩니다.

public void initLength() {

    for(int i = 0; i < 5; i++){
        System.out.println(this._finalPoints[i].getLongitude() + ", " + this._finalPoints[i].getLatitude());
    }

    int length = 5;

    //TMapPoint start = _finalPoints[0];
    this._length = new double[5][5];


    for(int i = 0; i < length; i++){ // 0,0 1,1 2,2 3,3 4,4
        this._length[i][i] = DEFAULT_MAX_SIZE;
    }

     //0,1 0,2 0,3 0,4
    for(int j = 1; j < length; j++){
        this._length[0][j] = this._length[j][0] = this.findPathDistance(_finalPoints[0], _finalPoints[j]);


    }

    // 1,2 1,3 1,4
    for(int j = 2; j < length; j++){
        this._length[1][j] = this._length[j][1] = this.findPathDistance(_finalPoints[1], _finalPoints[j]);

        try {
            sleep((700));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    // 2,3 2,4
    for(int j = 3; j < length; j++){
        this._length[2][j] = this._length[j][2] = this.findPathDistance(_finalPoints[2], _finalPoints[j]);

        try {
            sleep((500));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    // 3,4
    for(int j = 4; j < length; j++){
        this._length[3][j] = this._length[j][3] = this.findPathDistance(_finalPoints[3], _finalPoints[j]);

        try {
            sleep((400));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    for(int i = 0; i < length; i++){ //전제 좌표 확인용
        for(int j = 0; j < length; j++){
            System.out.println(i + ", " + j + " = " + this._length[i][j]);
        }
    }

// for (int i = 0; i < length; i++) {
// for (int j = 0; j < length; j++) {
// if (i == j) {
// this._length[i][j] = DEFAULT_MAX_SIZE;
// System.out.println(i + ", " + j + " = " + this._length[i][j]);
// } else {
// this._length[i][j] = this.findPathDistance(_finalPoints[i], _finalPoints[j]);
//
//
//
// System.out.println(i + ", " + j + " = " + this._length[i][j]);
// }
// }
// }
}

initLength를 수정했고 이때 나오는 결과입니다.

0 Likes

#4

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

보내주신 내용만으로는 정확한 원인을 파악하기가 어렵습니다.

1. distance값이 0이 나오는 경우의 정확한 출발점과 도착점의 좌표를 구하신 다음 두 값의 동일 여부를 확인해 보시길 바랍니다.

2. 만약 두 값이 동일하지 않음에도 distance값이 0일 경우 API를 요청할때 초당 2건 이상이 요청되지 않도록 delay를 주시면 원하시는 결과를 얻으실 수 있을 것 같습니다.

감사합니다.

0 Likes