Nuke Olaf - Log Store
[Android] 안드로이드 - google map 에 검색창 추가하기 본문
내 앱의 구글 맵이 보이는 부분에서 장소를 검색할 수 있는 검색 창을 띄우고 싶다.
구글 맵에서 제공하는 AutoCompleteFragment 를 사용하거나, 직접 EditText 를 이용해서 검색창을 만들 수 있다고 한다.
AutoCompleteFragment 는 지도에서 검색할때 자동완성을 도와주는 기능을 하는 fragment 인것 같다. 그런데 찾아보니, AutoCompleteFragment 는 deprecated 되었다고 한다. 왜 deprecated 되었는지는 아직 찾아보지 못했음.
아무튼 그래서 SupportAutocompleteFragment 를 사용하면 된다고 함
https://developers.google.com/places/android-sdk/autocomplete
아무튼 나는 Edit Text 로 검색하는 방법을 사용하기로 했다.
코드 분석을 아직 제대로 못해서 제대로 이해하고 사용한것 같지는 않다.
// 구글맵에서 검색창 editText 와 검색된 위치 불러올 textView 초기화
searchBox = findViewById(R.id.shop_editText_search);
locationText = findViewById(R.id.shop_text_location);
// 구글맵 검색 하는 부분
Button searchButton = findViewById(R.id.shop_button_search);
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 검색창에서 텍스트를 가져온다
String searchText = searchBox.getText().toString();
Geocoder geocoder = new Geocoder(getBaseContext());
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocationName(searchText, 3);
if (addresses != null && !addresses.equals(" ")) {
search(addresses);
}
} catch(Exception e) {
}
}
});
// 구글맵 주소 검색 메서드
protected void search(List<Address> addresses) {
Address address = addresses.get(0);
LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
String addressText = String.format(
"%s, %s",
address.getMaxAddressLineIndex() > 0 ? address
.getAddressLine(0) : " ", address.getFeatureName());
locationText.setVisibility(View.VISIBLE);
locationText.setText("Latitude" + address.getLatitude() + "Longitude" + address.getLongitude() + "\n" + addressText);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title(addressText);
map.clear();
map.addMarker(markerOptions);
map.moveCamera(CameraUpdateFactory.newLatLng(latLng));
map.animateCamera(CameraUpdateFactory.zoomTo(15));
}
참고 링크 >>
https://stackoverflow.com/questions/45107806/autocomplete-search-bar-in-google-maps
https://www.viralandroid.com/2016/04/google-maps-android-api-adding-search-bar-part-3.html
'Android' 카테고리의 다른 글
[Android] 안드로이드 - Google Map 현재 위치 표시 예제 링크 (0) | 2020.01.16 |
---|---|
[Android] 안드로이드 - google map marker 검색 (0) | 2020.01.15 |
[Android] 안드로이드 - google map 사용법 (0) | 2020.01.15 |
[Android] 안드로이드 - API 란 무엇인가? (0) | 2020.01.15 |
[Android] 안드로이드 - Google map api 란 무엇인가? (0) | 2020.01.15 |
Comments