如何在android google地图上按标题搜索标记
我正在使用json从web服务检索标记,我想使用标记属性标题在地图上搜索它们 以下是java代码:如何在android google地图上按标题搜索标记,android,json,google-maps,Android,Json,Google Maps,我正在使用json从web服务检索标记,我想使用标记属性标题在地图上搜索它们 以下是java代码: public class MainActivity extends FragmentActivity { private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
public class MainActivity extends FragmentActivity {
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap = fragment.getMap();
// googleMap.setMyLocationEnabled(true);
new RetrieveTask().execute();
}
private class RetrieveTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
String strUrl = "http://192.168.43.229/location_marker_mysql/retrieve.php";
URL url = null;
StringBuffer sb = new StringBuffer();
try {
url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream iStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(iStream));
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
iStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
new ParserTask().execute(result);
}
}
MarkerOptions markerOptions = new MarkerOptions();
String name;
LatLng latLng;
double lat;
double lng;
private class ParserTask extends AsyncTask<String, Void, List<HashMap<String, String>>> {
@Override
protected List<HashMap<String, String>> doInBackground(String... params) {
MarkerJSONParser markerParser = new MarkerJSONParser();
JSONObject json = null;
try {
json = new JSONObject(params[0]);
} catch (JSONException e) {
e.printStackTrace();
}
List<HashMap<String, String>> markersList = markerParser.parse(json);
return markersList;
}
@Override
protected void onPostExecute(List<HashMap<String, String>> result) {
for (int i = 0; i < result.size(); i++) {
HashMap<String, String> hmPlace = result.get(i);
lat = Double.parseDouble(hmPlace.get("lat"));
lng = Double.parseDouble(hmPlace.get("lng"));
name = hmPlace.get("name");
String locality = hmPlace.get("locality");
String city = hmPlace.get("city");
latLng = new LatLng(lat, lng);
markerOptions.position(latLng);
markerOptions.title(name);
markerOptions.snippet(locality + "," + city);
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.school_marker));
googleMap.addMarker(markerOptions);
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(24.66372, 93.90627), 8.0f));
}
}
}
}
public类MainActivity扩展了FragmentActivity{
私人谷歌地图谷歌地图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment片段=(SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap=fragment.getMap();
//googleMap.setMyLocationEnabled(true);
新建RetrieveTask().execute();
}
私有类RetrieveTask扩展了异步任务{
@凌驾
受保护字符串doInBackground(无效…参数){
字符串strUrl=”http://192.168.43.229/location_marker_mysql/retrieve.php";
URL=null;
StringBuffer sb=新的StringBuffer();
试一试{
url=新url(strUrl);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.connect();
InputStream iStream=connection.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(iStream));
字符串行=”;
而((line=reader.readLine())!=null){
某人附加(行);
}
reader.close();
iStream.close();
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
使某人返回字符串();
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
新建ParserTask()。执行(结果);
}
}
MarkerOptions MarkerOptions=新MarkerOptions();
字符串名;
LatLng LatLng;
双lat;
双液化天然气;
私有类ParserTask扩展了AsyncTask{
@凌驾
受保护列表doInBackground(字符串…参数){
MarkerJSONParser markerParser=新的MarkerJSONParser();
JSONObject json=null;
试一试{
json=新的JSONObject(参数[0]);
}捕获(JSONException e){
e、 printStackTrace();
}
List-markersList=markerParser.parse(json);
返回标记列表;
}
@凌驾
受保护的void onPostExecute(列表结果){
对于(int i=0;i
这里是xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="4"
android:hint="Search Here" />
<Button
android:id="@+id/search_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:onClick="onMapSearch"
android:text="Search" />
</LinearLayout>
</LinearLayout>
如果有任何帮助,我们将不胜感激。看一看我找不到答案看一看我找不到答案