제가 한글로 주소를 입력받아서, 그 주소를 위도,경도로 변환한뒤에, 그 위도,경도를 통해서 지도에 표시하고 싶습니다.
이 과정에서 주소를 위도,경도로 변환하는것 까지는 성공했습니다.
문제는 이 위도, 경도를 가져와 지도에 표시하는것인데요.
위도경도 값이 같은 class 안에 public void 안에 있긴 한데, 이 안에 있는 값을 가져오지 못하고 초기에 설정해 두었던 값을 가져오는 것이 문제입니다.
클래스 아래에 이렇게 초기값을 주었습니다.
Double lon = 127.1763825 ;
Double lat = 37.0082453 ;
|
그리고 밑에 소스와 같이 위도 경도 값을 받아오도록 했습니다. Log에서도 위도경도값이 잘 나옵니다.
public void getGeoPoint(JSONObject jsonObject) {
try {
lon = ((JSONArray) jsonObject.get( "results" )).getJSONObject( 0 )
.getJSONObject( "geometry" ).getJSONObject( "location" )
.getDouble( "lng" );
lat = ((JSONArray) jsonObject.get( "results" )).getJSONObject( 0 )
.getJSONObject( "geometry" ).getJSONObject( "location" )
.getDouble( "lat" );
} catch (JSONException e) {
e.printStackTrace();
}
Log.d( "myLog" , "경도:" + lon);
Log.d( "myLog" , "위도:" + lat);
}
|
그리고 밑에 소스와 같이 lat, lon값을 가져오도록 하여 맵에 표시되도록 하였습니다.
loc = new LatLng(lat, lon);
Log.d( "myLog" , "loc : " + loc);
CameraPosition cp = new CameraPosition.Builder().target((loc)).zoom( 15 ).build();
MarkerOptions marker = new MarkerOptions().position(loc);
mGoogleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
mGoogleMap.addMarker(marker);
|
위 처럼 했는데 Log에 뜨는 값이 안나오고 초기에 적었던 값이 나옵니다.
loc를 적기 전에 getGeoPoint를 불러오는 걸 써야하는 걸까요?
제가 안드로이드, 자바 개발 초보라서 부족한 점이 많지만 조금만 도와주세요 ㅠㅠ