2013-09-10 3 views
-2

Я создаю приложение, в котором пользователь записывает свое местоположение и масштабирует карту. Для карты я в порядке, но моя проблема заключается в получении информации из поиска. Итак, мой объем: пользователь записывает свое местоположение, нажимает на кнопку поиска на клавиатуре и увеличивает масштаб изображения на его основе.Как использовать Поиск Просмотр

ответ

3

Карты Google уже имеют кнопку местоположения, которая масштабирует камеру до местоположения пользователя. Хотя я предполагаю, что это не то, что вы ищете

Я расскажу, как использовать виджет Android SearchView для ввода текста, но вам нужно будет использовать Geocoder для поиска местоположения из этого текста.

Прежде всего, чтобы использовать поиск, вы должны объявить его в своем XML-файле.

<SearchView 
     android:id="@+id/searchview_map_search" 
     android:width="fill_parent" 
     android:height="wrap_content" /> 

Это создает вид панели поиска, которая расширяется, когда пользователь нажимает на нее, вы можете также использовать поле EditText, чтобы позволить пользователю вводить в поисковую строку. Я буду продолжать с SearchView

В вашем MapFragment или деятельности, где вы будете искать от, установить QueryListener в SearchView

SearchView searchView = (SearchView) item.getActionView().findViewById(R.id.serchview_map_search); 

    searchView.setOnQueryTextListener(new OnQueryTextListener() { 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      // Do something when user his enter on keyboard 
      view.clearFocus(); 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      // Do something while user is entering text 
      return false; 
     } 
    }); 

Строка запроса входной строки, которые пользователь ввел. Вы можете использовать эту строку, а затем переместить камеру в положение введенной строки. Для этого требуется другой класс или система. Самый простой способ конвертировать имя местоположения в координаты LatLng местоположения - использовать класс Geocode: http://developer.android.com/reference/android/location/Geocoder.html Я не буду вдаваться в это, есть много вопросов StackOverflow по этой теме

Смежные вопросы