구글맵을 활용하여 지도로 할 수 있는 작업 _ LatLng, Marker
1. 특정 위도, 경도 값으로 지도의 위치를 적용시키는 코드
- LatLog 사용
- googleMap은 파라미터로 제공되어서 사용이 가능하다.
// LatLng 사용
LatLng myLocation = new LatLng(37.5428, 126.6772);
//newLatLngZoom() 지도 가까워지게 만든다 (줌이 작을수록 멀리, 줌이 커질수록 가깝게)
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 17));
2. 마커를 만들어서, 지도에 표시하는 방법
- 마커에 유니크한 태그 값도 같이 만들어 주기
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(myLocation).title("연희직업전문학교");
googleMap.addMarker(markerOptions).setTag(0);
3. 마커를 클릭하면, 동작하는 코드
- 동작하는 코드를 작성하기 위해서는,
MarkerOptions를 만들 때, 태그를 달아줘서 마커를 구분해 줘야 한다.
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
int tag = (int) marker.getTag();
// 여러 태그가 있을 경우 코드 작성 법
// if(tag == 0){
// }
Toast.makeText(MainActivity.this,
"제가 누른 마커의 태그는 : "+tag+", 타이틀은 : "+marker.getTitle(),
Toast.LENGTH_LONG).show();
return false;
}
});
4. 지도의 타입을 설정하는 코드
- 위성으로 지정
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
전체 코드 및 결과물
더보기
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
// 지도 준비되면 해달라는 함수
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
// 맵이 준비되면 내 위치를 중심으로 지도가 나오게 해라 라는 코드 작성
// 화면을 띄울때 하고 싶은 일
// 37.5428, 126.6772
// 1. 특정 위도 경도 값으로 지도의 위치를 적용시키는 코드
LatLng myLocation = new LatLng(37.5428, 126.6772);
//newLatLngZoom() 지도 가까워지게 만든다 (줌이 작을수록 멀리, 줌이 커질수록 가깝게)
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 17));
// 2. 마커를 만들어서, 지도에 표시하는 방법
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(myLocation).title("연희직업전문학교");
googleMap.addMarker(markerOptions).setTag(0);
// 3. 마커를 클릭하면, 동작하는 코드 작성
// 중요! 위에서 MarkerOptons 를 만들때, 태그를 달아줘서 구분해 줘야 한다.
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
int tag = (int) marker.getTag();
// if(tag == 0){
// }
Toast.makeText(MainActivity.this, "제가 누른 마커의 태그는 : "+tag+", 타이틀은 : "+marker.getTitle(), Toast.LENGTH_LONG).show();
return false;
}
});
// 4. 지도의 타입을 설정하는 코드
// MAP_TYPE_SATELLITE 위성
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
}
});
}
}
'Android Studio' 카테고리의 다른 글
[Android Studio] 나의 앱에서 카카오맵 열기 _ 현재 사용자 위치기반으로 설정된 위치에서 길 찾기 (0) | 2024.07.12 |
---|---|
[Android Studio] 텐서플로우를 이용해서 이미지 분류 앱 만들기 (0) | 2024.07.12 |
[Android Studio] 구글맵 지도를 사용해서 지도 표시하는 방법 _ 설정 방법, 화면 개발 (0) | 2024.06.18 |
[Android Studio] 위치 기반 서비스 _ 로그로 위치 확인 ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION (0) | 2024.06.18 |
[Android Studio] 탭바 만들기 _ 라이브러리 설치 및 사용 방법 (0) | 2024.06.18 |