public class Location extends MapActivity {
 GeoPoint point;
 MapView mapView;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.location);
  mapView = (MapView)findViewById(R.id.mapview);
  mapView.setBuiltInZoomControls(true);
  mapView.setSatellite(false);
  mapView.setStreetView(true);
  MapController mc = mapView.getController();
  //mc.setCenter(point); // 시작 위치
  mc.setZoom(8);
  BackThread t = new BackThread();
  Thread thread = new Thread(t);
  thread.start();
 }
 class BackThread implements Runnable {
  public void run() {
   double d_latitude;
   double d_longitude;
   final List<Overlay> list = mapView.getOverlays();
   Drawable drawable = getResources().getDrawable(R.drawable.androidmarker);
   final HelloItemizedOverlay itemizedOverlay = new HelloItemizedOverlay(drawable,getApplication());
   try
   {   
    URL text = new URL("http://parser.php");
    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    XmlPullParser parser = factory.newPullParser();
    parser.setInput(text.openStream(), "UTF-8");
    while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
     switch(parser.getEventType()){
     case XmlPullParser.START_DOCUMENT:
      break;
     case XmlPullParser.END_DOCUMENT:
      break;
     case XmlPullParser.TEXT:
      break;
     case XmlPullParser.START_TAG:
      if(parser.getName().equals("pension")){
       d_longitude = Double.parseDouble(parser.getAttributeValue(8));
       d_latitude =  Double.parseDouble(parser.getAttributeValue(9));
       point = new GeoPoint((int)(d_latitude*1E6), (int)(d_longitude*1E6));
       OverlayItem overItem = new OverlayItem(point, "", "");
       itemizedOverlay.addOverlayItem(overItem);
       list.add(itemizedOverlay);
      }
      break;
     }
     parser.next();
    }
   }catch(Throwable t) {
    Toast.makeText(Location.this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
   }
  }
 }
 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}

 

url주소에서 xml로 작성된 데이터를 파싱해서 가져옵니다.

좌표값이 약 200개정도 있는데 일단 저렇게 하면

맵위에 마커가 다 표시되긴 합니다.

근데 움직이는게 너~~~~무 느려요 ㅠㅠ

다른 비슷한 어플보면 움직이는 건 빠르던데..

빨리 할수 없을까요?