호롱호롱불
20
2021-02-01 16:35:22
2
132

[질문] 네이버 지도 API 주소를 위경도 값으로 변경하는 방법 질문 드립니다.



안녕하세요.

제가 네이버 지도 API를 활용해 주소를 위경도 값으로 변경해보려고 하는데...

사용 방법을 잘 모르겠네요.


https://navermaps.github.io/maps.js.ncp/docs/naver.maps.Service.html#~GeocodeResponse

(설명도 있고 예제 코드도 있는데... 일단 돌려도 실행이 안되서..)


예제코드를 봐도... 어떻게 사용하는 건지 감이 안잡혀... 


설명을 보면 

 naver.maps.Service.geocode({query: "주소"}, function(status, response));

여기서 query에 주소를 넣고 실행하면 요청하여 response로 address 값을 가지고 오는 것 같은데

어떤 결과를 가져왔는데 document.write()로 찍어보면 Object object로 나와서 결과 타입만 나오는 거라고 생각하고 값을 가지고 오고 싶은데... 방법을 모르겠네요;;


혹시 API 사용해보신분 조언 좀 해주시면 감사하겠습니다.

0
  • 답변 2

  • 에비뉴
    153
    2021-02-01 16:51:20

    네이버 지도api는 사용해보지는 않았지만 다음API와 비슷하다고 보고 간략히 순서를 말씀드리자면

    1. 아래 스크립트 추가 (apiKey값 필요 > YOUR_CLIENT_ID)

    <script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=YOUR_CLIENT_ID&submodules=geocoder"></script>


    2. 주소 -> 좌표 검색 API 호출

    naver.maps.Service.geocode({
            query: '불정로 6'
        }, function(status, response) {
            if (status !== naver.maps.Service.Status.OK) {
                return alert('Something wrong!');
            }
    
            var result = response.v2, // 검색 결과의 컨테이너
                items = result.addresses; // 검색 결과의 배열
                이 부분에서 아래 result의 x, y 값으로 위, 경도 값 추출
            // do Something
        });


    3. result가 아래와 같이 옴

    {
      "v2": {
        "status": "OK",
        "meta": {
          "totalCount": 1,
          "page": 1,
          "count": 1
        },
      "addresses": [
        {
            "roadAddress": "경기도 성남시 분당구 불정로 6 그린팩토리",
            "jibunAddress": "경기도 성남시 분당구 정자동 178-1 그린팩토리",
            "englishAddress": "6, Buljeong-ro, Bundang-gu, Seongnam-si, Gyeonggi-do, Republic of Korea",
            "addressElements": [
              {
                "types": [
                  "POSTAL_CODE"
                ],
              "longName": "13561",
              "shortName": "",
              "code": ""
              }
            ],
            "x": "127.10522081658463",
            "y": "37.35951219616309",
            "distance": 20.925857741585514
        }
      ],
      "errorMessage": ""
      }
    }


  • 호롱호롱불
    20
    2021-02-02 09:31:58

    답변에 대한 댓글을 어떻게 하는지 모르겠네요...

    감사합니다.


    방금 해결을 하였는데요.


    예제에서는 

     var result = response.v2,

           items = result.addresses;


    이렇게 되어 있어서 items.x, items,y 로 해도 결과 값이 나오질 않았는데

    검색에서 알게된 내용으로 아래와 같이 하니 나오더라구요.

    item = response.v2.addresses[0];

    item.x, item.y 로 결과가 나오는 것을 확인하였습니다.


    저 [0]이 가져온 결과 값에서 어떤 차이점이 있는지는 모르겠네요.. ㅠㅠ

    답변 감사합니다.


    이렇게 선어하여 



  • 로그인을 하시면 답변을 등록할 수 있습니다.