3일이나 헤매다가 질문글 올려봅니다 ㅠㅠ

 

제목에 써있는 내용그대로입니다.

 

구글맵을 사용하는 mapactivity를 사용하고 있는 페이지에

 

 @Override
  public void draw(Canvas canvas, MapView mapView, boolean shadow) {

 

를 사용해서 라인을 그리려고 하고 있는데요... 어디서 잘못된건지 지도위에 표시 자체가 안되고 있습니다. 오류는 없구요...

 

원본 소스코드를 올려보겠습니다. 답변 꼭 좀 부탁드리겠습니다 ㅠㅠ

 

 

 

 

 

package com.example.hellotabwidget;

 

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.location.LocationListener;
import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

 

public class Number2 extends MapActivity {
 
 private int draw_x, draw_y, key_xv, key_yv;
  private LocationListener mLocationListener;
 private MapView mapView;
 private MapController mc; 
 private List<Overlay> mapover;
 private OverlayItem[] over = new OverlayItem[8];
 public static Activity map_act;
 
 @Override
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.number2_layout);
        map_act = this;
        key_xv = 0;
  key_yv = 0;
  Intent intent = getIntent();
  key_xv = intent.getIntExtra("key_x", 0);
  key_yv = intent.getIntExtra("key_y", 0);
       
        final MapView mapView = (MapView)findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        mapView.setSatellite(false);
        mapView.setTraffic(true);
        mapView.setStreetView(true);
       
        GeoPoint gp = new GeoPoint (key_xv, key_yv);
        mc = mapView.getController();
  mc.animateTo(gp);
  mc.setZoom(17);
  
  mapover = mapView.getOverlays();
 }
 
 @Override
 protected boolean isRouteDisplayed() {
  return false;
 }
 
 public class MyOveray extends ItemizedOverlay {

  private Context mContext;
  private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

  public MyOveray(Drawable defaultMarker, Context context) {
   super(boundCenterBottom(defaultMarker));
   // TODO Auto-generated constructor stub
   mContext = context;
  }

  @Override
  protected OverlayItem createItem(int i) {
   // TODO Auto-generated method stub
   return mOverlays.get(i);
  }

  @Override
  public int size() {
   // TODO Auto-generated method stub
   return mOverlays.size();
  }

  public void addOverlay(OverlayItem overlay) {
   mOverlays.add(overlay);
   populate();
  }
  public void addOverlay(OverlayItem overlay, Drawable drawable)
  {
   if(drawable!=null)
    overlay.setMarker(boundCenterBottom(drawable));
   addOverlay(overlay);
  }
 

// 여기부터가 canvas 사용해 라인을 그리는 부분입니다


  @Override
     public void draw(Canvas canvas, MapView mapView, boolean shadow) {
  

  Paint pnt = new Paint();
  pnt.setColor(Color.RED);
  pnt.setStyle(Paint.Style.STROKE);
  pnt.setStrokeWidth(3);
  pnt.setAntiAlias(true);
  GeoPoint[] d_geo = new GeoPoint[89];
  Point[] d_point = new Point[89];
  
  GeoPoint line = new GeoPoint(37583536, 126989143);
  Point linep = new Point();
  
  GeoPoint line2 = new GeoPoint(37583628, 126989129);
  Point linep2 = new Point();
  
  d_geo[0] = new GeoPoint(37579072, 126985281);
  d_geo[1] = new GeoPoint(37579204, 126985876);
  d_geo[2] = new GeoPoint(37579255, 126986139);
  d_geo[3] = new GeoPoint(37579298, 126986310);
  d_geo[4] = new GeoPoint(37579289, 126988397);
  d_geo[5] = new GeoPoint(37579289, 126988639);
  d_geo[6] = new GeoPoint(37579310, 126989218);
  d_geo[7] = new GeoPoint(37579549, 126989239);
  d_geo[8] = new GeoPoint(37579799, 126989218);
  d_geo[9] = new GeoPoint(37581228, 126989293);
  d_geo[10] = new GeoPoint(37581483, 126989309);
  d_geo[11] = new GeoPoint(37582201, 126989433);
  d_geo[12] = new GeoPoint(37582325, 126989416);
  d_geo[13] = new GeoPoint(37582456, 126989352);
  d_geo[14] = new GeoPoint(37582677, 126989245);
  d_geo[15] = new GeoPoint(37582848, 126989180);
  d_geo[16] = new GeoPoint(37582890, 126989207);
  d_geo[17] = new GeoPoint(37583001, 126989229);
  d_geo[18] = new GeoPoint(37583326, 126989199);
  d_geo[19] = new GeoPoint(37583621, 126989105);
  d_geo[20] = new GeoPoint(37583706, 126989100);
  d_geo[21] = new GeoPoint(37583779, 126989036);
  d_geo[22] = new GeoPoint(37583711, 126988923);
  d_geo[23] = new GeoPoint(37583591, 126988987);
  d_geo[24] = new GeoPoint(37583094, 126989057);
  d_geo[25] = new GeoPoint(37582916, 126989057);
  d_geo[26] = new GeoPoint(37582916, 126988639);
  d_geo[27] = new GeoPoint(37583005, 126988354);
  d_geo[28] = new GeoPoint(37583043, 126988129);
  d_geo[29] = new GeoPoint(37583039, 126987635);
  d_geo[30] = new GeoPoint(37583039, 126987330);
  d_geo[31] = new GeoPoint(37583039, 126986836);
  d_geo[32] = new GeoPoint(37583090, 126986488);
  d_geo[33] = new GeoPoint(37582775, 126986182);
  d_geo[34] = new GeoPoint(37582682, 126985855);
  d_geo[35] = new GeoPoint(37582514, 126985715);
  d_geo[36] = new GeoPoint(37581895, 126985747);
  d_geo[37] = new GeoPoint(37581768, 126985415);
  d_geo[38] = new GeoPoint(37581746, 126985044);
  d_geo[39] = new GeoPoint(37581445, 126985044);
  d_geo[40] = new GeoPoint(37581440, 126984991);
  d_geo[41] = new GeoPoint(37581415, 126984717);
  d_geo[42] = new GeoPoint(37581432, 126984664);
  d_geo[43] = new GeoPoint(37581466, 126984605);
  d_geo[44] = new GeoPoint(37581491, 126984572);
  d_geo[45] = new GeoPoint(37581721, 126984433);
  d_geo[46] = new GeoPoint(37581746, 126984401);
  d_geo[47] = new GeoPoint(37581887, 126984063);
  d_geo[48] = new GeoPoint(37581993, 126983719);
  d_geo[49] = new GeoPoint(37582027, 126983677);
  d_geo[50] = new GeoPoint(37582129, 126983612);
  d_geo[51] = new GeoPoint(37582305, 126983553);
  d_geo[52] = new GeoPoint(37582652, 126983961);
  d_geo[53] = new GeoPoint(37582954, 126983854);
  d_geo[54] = new GeoPoint(37583247, 126983736);
  d_geo[55] = new GeoPoint(37583430, 126983660);
  d_geo[56] = new GeoPoint(37583353, 126983344);
  d_geo[57] = new GeoPoint(37583362, 126983306);
  d_geo[58] = new GeoPoint(37583417, 126983178);
  d_geo[59] = new GeoPoint(37583919, 126983194);
  d_geo[60] = new GeoPoint(37583949, 126983247);
  d_geo[61] = new GeoPoint(37584012, 126983247);
  d_geo[62] = new GeoPoint(37584238, 126983253);
  d_geo[63] = new GeoPoint(37584348, 126983263);
  d_geo[64] = new GeoPoint(37584386, 126983403);
  d_geo[65] = new GeoPoint(37584650, 126983441);
  d_geo[66] = new GeoPoint(37584658, 126982958);
  d_geo[67] = new GeoPoint(37584548, 126982926);
  d_geo[68] = new GeoPoint(37584229, 126982689);
  d_geo[69] = new GeoPoint(37584046, 126982588);
  d_geo[70] = new GeoPoint(37583766, 126982282);
  d_geo[71] = new GeoPoint(37583375, 126982244);
  d_geo[72] = new GeoPoint(37583162, 126982234);
  d_geo[73] = new GeoPoint(37582461, 126982180);
  d_geo[74] = new GeoPoint(37582231, 126982158);
  d_geo[75] = new GeoPoint(37581848, 126982126);
  d_geo[76] = new GeoPoint(37581644, 126982137);
  d_geo[77] = new GeoPoint(37581411, 126982223);
  d_geo[78] = new GeoPoint(37581117, 126982180);
  d_geo[79] = new GeoPoint(37581062, 126982137);
  d_geo[80] = new GeoPoint(37581049, 126982099);
  d_geo[81] = new GeoPoint(37581032, 126981847);
  d_geo[82] = new GeoPoint(37580977, 126981579);
  d_geo[83] = new GeoPoint(37580845, 126981627);
  d_geo[84] = new GeoPoint(37580144, 126982067);
  d_geo[85] = new GeoPoint(37579965, 126982250);
  d_geo[86] = new GeoPoint(37579935, 126982282);
  d_geo[87] = new GeoPoint(37579761, 126982271);
  d_geo[88] = new GeoPoint(37579549, 126982191);
  
  

  for (int i = 0; i < 89; i++) {
   d_point[i] = new Point();
   mapView.getProjection().toPixels(d_geo[i], d_point[i]);
  }
  mapView.getProjection().toPixels(line, linep);
  mapView.getProjection().toPixels(line2, linep2);
 
  
  
  for (int i = 0; i < 88; i++) {

   if (mapView.getZoomLevel() > 18) {
    if (i != 1 && i != 4 && i != 7 && i != 9 && i != 13
      && i != 18 && i != 29 && i != 33 && i != 34
      && i != 36 && i != 40 && i != 46 && i != 53
      && i != 61 && i != 71 && i != 73 && i != 80
      && i != 86&& i != 87) {
     canvas.drawLine(d_point[i].x, d_point[i].y,
       d_point[i + 1].x, d_point[i + 1].y, pnt);

    }
   } else {

    canvas.drawLine(d_point[i].x, d_point[i].y,
      d_point[i + 1].x, d_point[i + 1].y, pnt);
   }

  }

  GeoPoint toGeoPoint = new GeoPoint(draw_x,draw_y);
  Point targetPosition = new Point();
  mapView.getProjection().toPixels(toGeoPoint,targetPosition);
  
  
  Paint paint = new Paint();
  paint.setAntiAlias(true);
  
  
  canvas.drawLine(linep.x, linep.y,
    linep2.x, linep2.y,pnt);
  canvas.drawLine(linep2.x, linep2.y,
    d_point[19].x, d_point[19].y,pnt);
  super.draw(canvas, mapView, shadow);
 }

       
  }
 
}