Nuke Olaf - Log Store

[Android] 안드로이드 - google map 사용법 본문

Android

[Android] 안드로이드 - google map 사용법

NukeOlaf 2020. 1. 15. 02:55

 

 

 

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shop);
        
         // 구글 맵 프래그먼트를 띄운다
        // SupprotMapFragment 를 통해 레이아웃에 만든 fragment 의 ID 를 참조하고
        // 구글맵을 호출한다.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.shop_map);

        // getMapAsync 는 무조건 main Thread 에서 호출되어야한다
        mapFragment.getMapAsync(this);
   
   }
   
   @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;

        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

        oneMarker();
    }

    public void oneMarker() {
        // 서울 여의도에 대한 위치 설정
        LatLng seoul = new LatLng(37.52487, 126.92723);

        // 구글맵에 표시할 마커에 대한 옵션 설정
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions
                .position(seoul)
                .title("원하는 위치(위도, 경도)에 마커를 표시했습니다")
                .snippet("여기는 여의도입니다")
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
                .alpha(0.5f); // 알파는 좌표의 투명도

        // 마커를 생성한다
        map.addMarker(markerOptions); // .showInfoWindow() 를 쓰면 처음부터 마커에 상세정보가 뜬다

        // 정보창 클릭리스너
        map.setOnInfoWindowClickListener(infoWindowClickListener);

        // 마커 클릭 리스너
        map.setOnMarkerClickListener(markerClickListener);

        // 카메라를 여의도 위치로 옮겨준다
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(seoul, 16));

        map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                Toast.makeText(ShopActivity.this, "눌렀습니다!!", Toast.LENGTH_LONG);
                return false;
            }
        });
    }

    // 정보창 클릭 리스너
    GoogleMap.OnInfoWindowClickListener infoWindowClickListener = new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
            String markerId = marker.getId();
            Toast.makeText(ShopActivity.this, "정보창 클릭 Marker ID : " 
            + markerId, Toast.LENGTH_SHORT).show();
        }
    };

    // 마커 클릭 리스너
    GoogleMap.OnMarkerClickListener markerClickListener = new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            String markerId = marker.getId();
            // 선택한 타겟의 위치
            LatLng location = marker.getPosition();
            Toast.makeText(ShopActivity.this, "마커 클릭 Marker ID : " 
            + markerId + "(" + location.latitude + " " + location.longitude + ")", 
            Toast.LENGTH_SHORT).show();
            return false;
        }
    };

 

참고한 사이트 >>>

https://mailmail.tistory.com/18?category=719923

https://mailmail.tistory.com/19?category=719923

https://youngest-programming.tistory.com/51

Comments