Json으로 파싱한 위도 경도로 Naver API 지도에 마커를 찍으려 합니다.(STRING TO DOUBLE)

조회수 1609회

네이버 api 지도를 사용해서 마커를 찍으려는데 마커에 들어가는 값이 Double형이라 적용이 안됩니다.

double LNG = Double.parseDouble(longitude.toString());

이런식으로 Double 형으로 변형을 시켜서 넣으려 해도 오류가 나오네요.

longitude = new ArrayList<>();
latitude = new ArrayList<>();

이렇게 ArrayList 로 선언되어있는 longitude 와 latitude 를 이용하여 마커를 찍으려 합니다.

    double LNG = Double.parseDouble(longitude.toString());
    double LAT = Double.parseDouble(latitude.toString());

    Marker marker = new Marker();
    marker.setPosition(new LatLng(LAT, LNG));
    marker.setMap(naverMap);

코드는 이와 같습니다. 혹시몰라 json parsing 코드도 같이 넣겠습니다.

try {

        JSONObject Land = new JSONObject(result);
                    JSONArray jsonArray = Land.getJSONArray("Response");
            for(int i = 0 ; i<jsonArray.length(); i++){
                JSONObject subJsonObject = jsonArray.getJSONObject(i);

            String sLAT = subJsonObject.getString("latitude");
            String sLNG = subJsonObject.getString("longitude");

            latitude.add(sLAT);
            longitude.add(sLNG);
             }
        } catch (JSONException e) {
            e.printStackTrace();
        }

좋은 답변 기다리겠습니다

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • List를 형변환한다고 List내 모든 요소가 Double 로 변환되지 않습니다.

    아래와 같이 latitude, longitude를 Double 를 담는 List로 선언합니다.

    List<Double> latitude = new ArrayList<>();
    List<Double> longitude = new ArrayList<>();
    

    json 을 처리하는 코드를 수정합니다.

    Double sLAT = subJsonObject.getDouble("latitude"); //String sLAT = subJsonObject.getString("latitude");
    Double sLNG = subJsonObject.getDouble("longitude"); //String sLNG = subJsonObject.getString("longitude");
    
    • 답변 감사합니다. 근데 마커를 찍는 부분에서 다시 오류가 나는데 이부분은 어떻게 수정할수 있을까요?? Marker marker = new Marker(); (이부분 ) -> marker.setPosition(new LatLng(latitude,longitude)); marker.setMap(naverMap); 알 수 없는 사용자 2019.12.29 20:40
    • 변환된 데이터로 마커를 찍으려는데 위도 경도 칸에 ArrayList를 넣으면 오류가 나는것 같습니다. 알 수 없는 사용자 2019.12.29 20:59
    • 에러메세지를 적어주세요 정영훈 2019.12.29 21:16
    • LatLng(double, double) in LatLng cannot be applied to (java.utilList< java.lang.Double > java.utilList< java.lang.Double > ) 이렇게 뜹니다! 알 수 없는 사용자 2019.12.29 21:23
    • 자바 초보신 것 같은데요....LatLng(double, double) 에요. List 를 대입하면 안되겠죠. 그리고 onCreate 부분도 문제가 있고요...자바 튜터리얼을 먼저 보시는 것이 맞는 것 같아요. 정영훈 2019.12.30 01:44
    • 일단 github 쪽에 수정하여 PR 했습니다. 정영훈 2019.12.30 02:17

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)