我正在构建一个应用程序,用户可以在其中写下自己的位置并将地图放大。对于地图我没关系,但我的问题是从搜索视图中获取信息。 所以,我的范围是:用户写下他的位置,按下键盘上的搜索按钮,地图放大他的位置
答案 0 :(得分:3)
Google地图已经有一个位置按钮,可以将相机缩放到用户位置。虽然我认为那不是你想要的
我将描述如何使用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问题