Я новичок в Android, используя Google Maps Android API v2 для своего приложения и имею проблему. Я получил позицию (Latitude, Longgitude) с сервера, моя работа установлена на маркер с этой позицией на карте и автоматически обновляет положение маркера (например: 1 обновление/минута). Я могу получить позицию с сервера и показать маркер точно, но не могу автоматически обновить цикл бесконечности. Как я могу использовать кнопку для автоматического обновления маркера, а другой - для остановки? Вот мой код получить данные с сервера (использование JSON) и установите маркер:Android - Автоопределение положения маркера Google map api v2
iv_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
markers = new ArrayList<Marker>();
listTaxi = new ArrayList<Get1Comp>();
googleMap.clear();
count = 1;
txt_search = et_search.getText().toString();
find_url = "http://192.111.124.80:8001/Default.aspx?username="
+ Id + "&password=" + Pass + "&comp="+txt_search;
new AsynComp().execute();
getCurrentFocus().clearFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(et_search.getWindowToken(), 0);
}
});
public class AsynComp extends AsyncTask<Void, Void, Void> {
ProgressDialog taxiDialog;
@Override
protected Void doInBackground(Void... params) {
jsonComp = new JSONComp(find_url);
find_status = jsonComp.getJsonStatus(txt_search);
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (find_status.equals("2013")) {
Toast.makeText(getBaseContext(), "No resutl",
Toast.LENGTH_SHORT).show();
} else if (find_status.equals("2012")) {
for (int i=0; i<count;i++){
listCom.add(new Get1Comp(jsonComp.getJsondata(i)));
SetMarkerComp(listComp.get(i));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
private void SetMarkerComp (Get1Comp get1Comp){
LatLng target = new LatLng(Double.parseDouble(get1Comp.getLat()),
Double.parseDouble(get1Comp.getLng()));
String compStt = get1Comp.getStt();
String compNav = get1Comp.getNav();
if (compStt.equals("0")) compStt = "b";
else if (compStt.equals("1")) compStt = "y";
else if (compStt.equals("2")) compStt = "r";
else if (compStt.equals("3")) compStt = "w";
Marker marker = googleMap.addMarker(new MarkerOptions() .position(target)
.icon(BitmapDescriptorFactory.fromResource(getIconComp(compStt, compNav)))
.title(get1Comp.getNo()));
marker.showInfoWindow();
setCamPosition(target);
markers.add(marker);
}