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

Tech.Forum

명칭검색(POI) api사용시 결과값들의 위도경도를 얻고싶습니다.

#1

안녕하세요 web 명칭검색을 활용해 웹어플리케이션을 만드는 유저입니다.
현재 명칭검색시 나오는 결과들의 lon lat을 따서 db에 저장후,
후에 다른페이지에서 lon lat값들을 지도에 넣어 결과를 보여주려고 합니다. (글작성, 글 조회에 응용)

api코드 에 보면

    var icon = new Tmap.Icon('http://tmapapis.sktelecom.com/upload/tmap/marker/pin_  
b_m_' + index + '.png', size, offset);//마커 아이콘 설정
                var lonlat = new Tmap.LonLat(lon, lat);//좌표설정

이부분 이 있는데 제가 저 lon lat을 가로채서 DB에 저장하려고 다음과 같이 lon lat을 확인했는데요

                innerHtml += "<span id='lon' >" + lon + "</span>"+"LL"+"<span id='lat' >"
                    + lat + "</span>"+"LL"+lonlat+"</div>";

                marker = new Tmap.Marker(lonlat, icon);//마커생성
                markerLayer.addMarker(marker);//마커레이어에 마커 추가

결과들이 다 141과 450으로 시작하는 위도경도밖에 뜨지 않습니다.


광명 같은경우 126.xxx 37.xx 로 떠야되는데 이것도 1415203.xxxx 45023.xxx등으로 뜹니다.
이 위도와 경도를 추출할수 있는 방법이 없을까요?

제 코드부분인데 ajax data 부분을 다음과 같이 설정했습니다.

/*poi 설정부분*/
data   : {
        "searchKeyword": keyword,//검색 키워드
        "resCoordType" : "EPSG3857",//응답 좌표계 유형
        //검색타입
        //all:통합 검색
        //name:명칭 검색
        //telno:전화번호 검색
        "searchType"   : "all",
        //거리순,정확도순 검색
        //A:정확도순
        //R:거리순
        "searchtypCd"  : "A",
        "reqCoordType" : "WGS84GEO",//요청 좌표계 유형
        "multiPoint"   : "N",
        "appKey"       : appKey,// 실행을 위한 키입니다. 발급받으신 AppKey(서버키)를 입력하세요.
        "count"        : 10//페이지당 출력되는 개수를 지정
    }

/*Tmap Load 부분*/
function initTmap() {

/*1.지도 띄우기*/
// map 생성
// Tmap.map을 이용하여, 지도가 들어갈 div, 넓이, 높이를 설정합니다.
map = new Tmap.Map({
    div   : 'map_div', // map을 표시해줄 div
    width : "650px",
    height: "452px",
});

map.setCenter(new Tmap.LonLat("126.986072", "37.570028").transform(
    "EPSG:4326", "EPSG:3857"), 15);

}
0 Likes

#2

안녕하세요.

T map API 운영담당자입니다.

명칭검색(POI) API사용시 요청데이터 값중 "resCoordType"의 값을 “EPSG3857” 가 아닌,
"WGS84GEO"로 수정하시면 문의하신 내용과 같이 원하는 좌표계로 응답받으실수 있습니다.

감사합니다.

0 Likes

#3

말씀하신대로 응답타입을 바꿨더니 위경도는 잘 뜨는데
문제가 검색시 타입이바뀌어서그런지 지도가 반응을 안하네요…
api의 지도예제처럼 검색시 반응이 되게하고싶습니다
이건 어떻게 해결하면 되나요?

0 Likes

#4

안녕하세요.

T map API 운영담당자입니다.

마커 생성시 “EPSG3857” 좌표계를 사용하지 않아 발생한 오류로 보여집니다.
질문자 님께서 작성하신 맵의 중앙 좌표로 이동하시는 코드와 같이 마크 생성시
new Tmap.LonLat(lon, lat).transform(“EPSG:4326”, “EPSG:3857”)을 통해 EPSG:3857좌표계로
변환하여 마크를 생성하시면 됩니다.

감사합니다.

0 Likes