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

Tech.Forum

안드로이드에서 티맵으로 위,경도 값 전달 문제

#1

안녕하세요 저는 현재 안드로이드 앱을 개발하고 있는 학생입니다.

제가 원하는 기능은 다음과 같습니다.
“지도 상에 표시된 마커를 누르면 풍선뷰가 뜨고 풍선뷰의 RightButton를 누르면
현재 마커의 위, 경도값이 T맵 어플에 전달되어 길찾기를 가능하게 하는 기능”
.
.

tmap.setOnCalloutRightButtonClickListener(new TMapView.OnCalloutRightButtonClickCallback() {
@Override
public void onCalloutRightButton(TMapMarkerItem markerItem) {
x = (float)markerItem.latitude;
y = (float)markerItem.longitude;
runTMapTapiT();

            Log.d(TAG, "x :   " + x + "   y :    " + y);
        }
    });

.
.
.
public void runTMapTapiT() {
tMapTapi = new TMapTapi(this);

    boolean isTmapApp = tMapTapi.isTmapApplicationInstalled();

    if(!isTmapApp){ //티맵이 설치 안되어있으면 설치를 위한 안내 dialog
        AlertDialog.Builder builder = new AlertDialog.Builder(parkingMapActivity.this);
        builder.setTitle("알림");
        builder.setMessage("Tmap 앱을 설치해주세요");
        builder.setCancelable(false);
        builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });
        builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                ArrayList<String> _ar = tMapTapi.getTMapDownUrl();
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(_ar.get(0)));
                startActivity(intent);
            }
        });
        builder.create().show();

    }else {
        Log.d(TAG, ""+tMapTapi.invokeSetLocation("name", x, y) +x +"  "+y);
        tMapTapi.invokeRoute("name", x, y);
    }
}

위의 코드와 같이 runTMapTapiT 메소드 내 tMapTapi.invokeRoute(“name”, x, y);를 통해
x,y(위, 경도)값을 제대로 전달했다고 생각하는데 실제 기기로 실행해보면
원하는 결과 화면이 나오지 않고 현재 위치에 해당하는 지도만 표시되네요.

어느 부분을 잘못한 것인지 알려주시면 감사하겠습니다!

0 Likes

#2

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

보내주신 내용을 확인해본 결과 아래 코드와 같이 로그를 찍기위한 부분에서 invokeSetLocation 함수가 실행 후 Tmap App이 연동되어 "해당위치 이동"이 실행되었습니다.


Log.d(TAG, “”+tMapTapi.invokeSetLocation(“name”, x, y) +x +" "+y);

위의 코드를 지우시고 아래코드만 실행하시면 정상적인 결과를 얻으실 수 있습니다.


tMapTapi.invokeRoute(“name”, x, y);

추가적으로
invokeRoute 함수를 실행하는 부분에서
좌표값을 반대로 입력하셨습니다.

invokeRoute 함수는 "목적지명칭", "경도", "위도" 순으로 값을 입력 후 실행시키셔야 합니다.

감사합니다.

0 Likes