-2

我正在构建一个应用程序,用户在其中写下他的位置并将地图放大。对于地图我很好,但我的问题是从搜索视图中获取信息。所以,我的范围是:用户写下他的位置,按下键盘上的搜索按钮,地图放大他的位置

4

1 回答 1

3

谷歌地图已经有一个位置按钮,可以将相机缩放到用户的位置。虽然我假设这不是你要找的

我将描述如何使用 android 小部件 SearchView 来输入文本,但您需要使用 Geocoder 从该文本中查找位置。

首先,要使用搜索视图,您必须在 XML 文件中声明它。

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

这将创建一个搜索视图栏,当用户单击它时会展开,您还可以使用 EditText 字段来允许用户输入可搜索的字符串。我将继续使用 SearchView

在您将要搜索的 MapFragment 或 Activity 中,将 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 问题

于 2013-09-10T13:46:24.023 回答