오버레이를 표시 할 수있는 활동이 있습니다. 이 오버레이에는 웹에서 가져 오는 마커가 있습니다.MapView 오버레이의 URL에서 Marker Lazy Loading을 구현하는 방법
이 마커에 대해 URL에서 지연로드를 구현하려면 어떻게해야합니까?
들으, 이고르
오버레이를 표시 할 수있는 활동이 있습니다. 이 오버레이에는 웹에서 가져 오는 마커가 있습니다.MapView 오버레이의 URL에서 Marker Lazy Loading을 구현하는 방법
이 마커에 대해 URL에서 지연로드를 구현하려면 어떻게해야합니까?
들으, 이고르
은 무엇 당신이해야 할 것은 당신의 데이터를 검색 할 수있는 AsyncTask를을 만들 수 있습니다. 비동기 작업이 실행되고 UI 스레드가 onPostExecute()를 호출하는 데이터가 있으면. onPostExecute() 메소드에서 예제 Android 코드에서와 같이 맵보기에 데이터를 추가합니다.
다음은 대부분 완전한 예입니다. 이 구멍을 채울 수 있어야합니다.
public class SomeActivity extends MapActivity {
private MapView mYourMapView;
protected void onCreate(Bundle yourbundle){
super.onCreate(yourbundle);
setContentView(R.layout.yourcontentview);
mYourMapView = (MapView)findViewById(R.id.yourmapviewid);
GetYourDataTask task = new GetYourDataTask(mYourMapView);
task.execute();
}
}
public class GetYourDataTask extends AsyncTask<Void, Void, Void>{
private MapView mView;
private List<Items> mYourItemsFromInternetSource;
public GetYourDataTask(MapView view){
this.mView = view;
}
protected Void doInBackground(Void... params){
.....get some data from internets
mYourItemsfromInternetSoruce = something you got from internet;
return null;
}
protected Void onPostExecute(){
YourOverlay overlay = new YourOverlay(mYourItemsFromInterSource);
mView.getOverlays().add(overlay);
}
}
public YourOverlay extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> mItems;
public YourOverlay(List<Item> itemsFromInternet)[
super(boundCenterBottom(someContext.getResources().getDrawable(R.drawable.map_pin)));
//for your items create overlay items then
List<OverlayItem> createdItems = someConvertFunction(itemsFromInternet);
for(OverlayItem item: createdItems){
mItems.add(item);
populate();
}
}
}
시도는 나에게지도보기와 자신의 마커 일부 샘플을주지하시기 바랍니다 수 http://developer.android.com/reference/android/os/AsyncTask.html –
를 사용하면 백그라운드 프로세스에서 모든 데이터를 만드는 방법? – ihrupin
알고 계십니까 ?? http://developer.android.com/guide/tutorials/views/hello-mapview.html –