1. 준비물
먼저 import 해야할 것이 있습니다.
import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; | cs |
이렇게 해야 좌표를 찍을 수 있습니다. 이걸로 좌표정보인 위도와 경도, 그리고 마커를 조작할 수 있게 됩니다.
2. 코드 구현
좌표를 얻는 코드를 구현하겠습니다.
googleMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() { @Override public boolean onMyLocationButtonClick() { ReferSharedPreference preferenceCoordinates = new ReferSharedPreference(getContext()); LatLng point = new LatLng(googleMap.getMyLocation().getLatitude(), googleMap.getMyLocation().getLongitude()); MarkerOptions marker = new MarkerOptions() .position(point).title("ok"); preferenceCoordinates.put("Coor", "{ \"longitude\": \""+ googleMap.getMyLocation().getLatitude() +"\", \"latitude\": \""+ googleMap.getMyLocation().getLongitude() +"\" } "); preferenceCoordinates.put("Lat", String.valueOf(googleMap.getMyLocation().getLatitude())); preferenceCoordinates.put("Lon", String.valueOf(googleMap.getMyLocation().getLongitude())); googleMap.clear(); googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, 14)); googleMap.addMarker(marker); String lat = preferenceCoordinates.getValue("Lat", "13"); String lon = preferenceCoordinates.getValue("Lon", "15"); mCoordinatesTextMap.setText(lat + " , " + lon); return true; } }); | cs |
이렇게 하면 기본으론 (13, 15) 좌표를 갖는 좌표클릭을 구현하게 되었습니다. 경도와 위도가 바뀌지 않도록 유의합니다.
위에서 변수 지정은 잊지 말아야 합니다. 변수 지정이 조금이라도 잘 못 되면 전체 정보가 왜곡되기 때문입니다.
ReferSharedPreference preferenceCoordinates 는 따로 지정한 DataType 이므로 나중에 다시 지정해야 합니다.
private TextView mCoordinatesTextMap; | cs |
이렇게 하면 좌표를 지정할 레이아웃을 가져옵니다.
'Java' 카테고리의 다른 글
[android] Glide와 intent 사용하기 (0) | 2018.02.03 |
---|---|
[android] 구글맵 3 (0) | 2018.02.03 |
[android] 구글맵 1 (0) | 2018.02.03 |
[android] Fragment 만들기 2-2 (0) | 2018.02.03 |
[android] Fragment 만들기 2-1 (0) | 2018.02.03 |