기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

프론트엔드/안드로이드 스튜디오

안드로이드 스튜디오 : 구글 맵 구현하기 / 구글 맵 보여주기 / 구글 맵 만들기

하늘.98 2022. 3. 30. 17:59

안드로이드 스튜디오 구글 맵 구현하는 코드입니다. 

gradle 설정 또한 해주어야 합니다. 

 

-------------------------------------------------Manifest-----------------------------------------------------------

<uses-permission android:name="android.permission.INTERNET" />

 

activity 사이에 넣어주면 된다.

<uses-library android:name="com.google.android.maps" />
<uses-library
    android:name="org.apache.http.legacy"
    android:required="false" />

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="AIzaSyARSwWyc4Bly9Wdaqc0Ba9Pp46VXAL2Agc" />
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

첫번째 value에는 내가 가져온 구글 맵 API_Key를 입력하면 된다.

두번째 value에는 구글 맵 Version 를 입력하면 된다.

 

모르겠는 경우 value 값에 아래와 같이 넣고 

두번째 value에 "@integer/google_play_services_version" 이라 적으면 된다. 

<integer name="google_play_services_version">12451000</integer>

---------------------------------------settings.gradle---------------------------------------------

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()


    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

    }
}


rootProject.name = "GoogleMapTest"
include ':app'

---------------------------------------bulid.gradle(Module)---------------------------------------

dependencies {
    implementation 'com.google.android.gms:play-services-maps:15.0.0'
    implementation 'com.google.android.gms:play-services-location:15.0.0'
    implementation 'com.google.android.gms:play-services-places:15.0.0'


    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

---------------------------------------MainActivity------------------------------------------------

 

 

public class MainActivity extends AppCompatActivity implements GoogleMap.OnMyLocationButtonClickListener,
        GoogleMap.OnMyLocationClickListener,
        OnMapReadyCallback {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        SupportMapFragment mapFragment =
                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);



        LatLngBounds australiaBounds = new LatLngBounds(
                new LatLng(-44, 113), // SW bounds
                new LatLng(-10, 154)  // NE bounds
        );
        @SuppressLint("MissingPermission")
        @Override
        public void onMapReady(GoogleMap map) {
            map.setMyLocationEnabled(true);
            map.setOnMyLocationButtonClickListener(this);
            map.setOnMyLocationClickListener(this);
            // map.setOnMarkerClickListener(markerClickListener);
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(australiaBounds.getCenter(), 17));




            // 구글맵 마커 사이즈 조절하는 코드
            BitmapDrawable bitmapdraw=(BitmapDrawable)getResources().getDrawable(R.drawable.pin3);
            Bitmap b=bitmapdraw.getBitmap();
            Bitmap smallMarker = Bitmap.createScaledBitmap(b, width, height, false);
            BitmapDrawable bitmapdraw2=(BitmapDrawable)getResources().getDrawable(R.drawable.selectpin);
            Bitmap b2=bitmapdraw2.getBitmap();
            Bitmap smallMarker2 = Bitmap.createScaledBitmap(b2, width, height, false);


            // 임의로 전동 킥보드 넣는 코드
            LatLng scooter1 = new LatLng(37.544121, 126.677024);
            map.addMarker(new MarkerOptions()
                    .position(scooter1)
                    .title("1번 전동킥보드")
                    .icon(BitmapDescriptorFactory.fromBitmap(smallMarker)));
            map.moveCamera(CameraUpdateFactory.newLatLng(scooter1));

            map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
                @Override
                public boolean onMarkerClick(Marker marker) {
                    String marker_id=marker.getId();

                    if(marker_id != null){
                        marker.setIcon(BitmapDescriptorFactory.fromBitmap(smallMarker2));
                        getTitle = marker.getTitle();
                        Toast.makeText(MainActivity.this, getTitle, Toast.LENGTH_SHORT).show();

                    }else{

                    }

                    return false;
                }

            });

        }


        @Override
        public void onMyLocationClick(@NonNull Location location) { }


        @Override
        public boolean onMyLocationButtonClick() {
            Toast.makeText(this, "내 위치보기", Toast.LENGTH_SHORT)
                    .show();

            // Return false so that we don't consume the event and the default behavior still occurs
            // (the camera animates to the user's current position).
            return false;
        }
    }
}

 

 

 



공식사이트 

https://developers.google.com/maps/documentation/android-sdk/start?hl=ko 

 

Android용 Maps SDK 빠른 시작  |  Google Developers

지금 바로 Android 앱용 Google 지도 프로젝트를 시작해 보세요. SDK 설치부터 앱 빌드 및 실행에 이르기까지 필요한 모든 것을 찾는 방법은 다음과 같습니다.

developers.google.com

구글 API 발급하기 

https://hanul0147.tistory.com/322

 

구글 맵 api : google map -> API 키 생성 / 구글 맵 api 생성하기 / 구글 api 생성 / 구글 맵 /구글 map / goog

https://console.cloud.google.com/apis/dashboard?hl=ko Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 만든 프로젝트를..

hanul0147.tistory.com