안드로이드 스튜디오 구글 맵 구현하는 코드입니다.
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
구글 API 발급하기
https://hanul0147.tistory.com/322
'프론트엔드 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 : 뒤로가기 버튼 / onBackPressed() / 뒤로가기 (0) | 2022.03.31 |
---|---|
안드로이드 스튜디오 / 깃허브 : 안드로이드 스튜디오 깃허브 연결하기 / 깃허브 안드로이드 연결하기 (0) | 2022.03.31 |
안드로이드 스튜디오 : 커스텀 다이얼로그 화면 맞추기 (0) | 2022.03.29 |
안드로이드 스튜디오 : xml 선 그리기 / xml 선 긋기 / 레이아웃 선긋기/ 레이아웃 선 (0) | 2022.03.28 |
안드로이드 스튜디오 : dialog 만들기 / 커스텀 dialog / 원하는대로 다이얼로그 만들기 (0) | 2022.03.28 |