구글맵에서 이동경로를 그리기 위해서 오버레이아이템 클래스를 만들어서 호출해서 사용중인데요.
지금 안되는 부분이 lat5_list, lng5_list arraylist String 배열에 위도 경도 정보가 저장되어있습니다. 약 10개
이때 marker = getResources().getDrawable(R.drawable.ic_launcher);
mapView.getOverlays().add(new MyOverlay(marker));
이걸 써서 오버레이 클래스를 호출해서 사용중입니다.
public class Vertex
{
public float x;
public float y;
public boolean Draw;
public Vertex(float _x, float _y, boolean _Draw)
{
x = _x;
y = _y;
Draw = _Draw;
}
}
class MyOverlay extends ItemizedOverlay{
public ArrayList<Vertex> arVertex = new ArrayList<Vertex>();
public ArrayList<Vertex> arVertexOri = new ArrayList<Vertex>();
List<OverlayItem> items = new ArrayList<OverlayItem>();
Drawable marker;
public MyOverlay(Drawable marker)
{
super(marker);
this.marker = marker;
populate();
}
public boolean onTap(GeoPoint p, MapView mapView)
{
// recvOp = new GeoPoint((int)
// p.getLatitudeE6(),(int)p.getLongitudeE6());
// items.add(new OverlayItem(recvOp, "inchon", "my room"));
//
// populate();
return true;
}
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);
recvOp = new GeoPoint((int)
35899387,(int) 128854473);
items.add(new OverlayItem(recvOp, "inchon", "my room"));
populate();
Paint paint1 = new Paint();
paint1.setStrokeWidth(4);
paint1.setARGB(255, 255, 0, 0);
if(recvOp == null) return;
arVertexOri.add(new Vertex((int) recvOp.getLatitudeE6(), (int) recvOp.getLongitudeE6(), true));
arVertex.clear();
Point pixPoint = new Point();
for ( int i = 1; i< arVertexOri.size(); i++)
{
GeoPoint k = new GeoPoint((int) arVertexOri.get(i).x, (int) arVertexOri.get(i).y);
mapView.getProjection().toPixels(k, pixPoint);
arVertex.add(new Vertex(pixPoint.x, pixPoint.y, true));
}
for (int i = 1; i< arVertex.size(); i++)
{
if(arVertex.get(i).Draw)
{
canvas.drawLine(arVertex.get(i-1).x, arVertex.get(i-1).y, arVertex.get(i).x, arVertex.get(i).y, paint1);
}
}
}
@Override
protected OverlayItem createItem(int i) {
// TODO 자동 생성된 메소드 스텁
return items.get(i);
}
@Override
public int size() {
// TODO 자동 생성된 메소드 스텁
return items.size();
}
}
지금 이렇게 해서 실행을 하게 되면 구글맵에 하나의 좌표가 생깁니다.
원래 소스는 폰에서 터치를 하게 되면 마커가 하나씩 그려지고 하나더 그리게 되면 두개 사이에 선이 그이는 형식이었습니다.
이를 배열에 저장되어있는 정보를 가져와서 그려주려고 하는데.. 어찌해야 될까요??