@Override
protected void onDraw(Canvas canvas) {
if (canvas==null) return;
Log.w(TAG,"AugView.onDraw()");
if (drawing.compareAndSet(false, true)) {
List<Marker> collection = ARData.getMarkers();
if (AugmentedActivity.showRadar) radar.draw(canvas);
cache.clear();
for (Marker m : collection) {
m.update(canvas, 0, 0);
if (m.isOnRadar()) cache.add(m);
}
collection = cache;
if (AugmentedActivity.useCollisionDetection) adjustForCollisions(canvas,collection);
ListIterator<Marker> iter = collection.listIterator(collection.size());
while (iter.hasPrevious()) {
Marker marker = iter.previous();
marker.draw(canvas);
double azi = ARData.bearingP1toP2(/*35.828983*/marker.physicalLocation.getLatitude(), /*128.757022*/marker.physicalLocation.getLongitude(), 35.832784, 128.755974);
int ang = (int) (ARData.getAzimuth()-azi);
if(ang > 180){
ang = ang-360;
}
else if(ang<-180){
ang = ang+360;
}
if(-8<=ang && ang <8)
{
bm1 = BitmapFactory.decodeResource(res, R.drawable.smallarrow);
canvas.drawBitmap(bm1, 550,300, null);
}
else if(8<=ang && ang <24)
{
bm1 = BitmapFactory.decodeResource(res, R.drawable.smallarrow6);
canvas.drawBitmap(bm1, 550,300, null);
}
else if(24<=ang && ang <40)
{
bm1 = BitmapFactory.decodeResource(res, R.drawable.smallarrow7);
canvas.drawBitmap(bm1, 550,300, null);
}
이하생략....
보기가 불편하시려나요;;
초보라 소스코드가 좀 지저분하네요 ㅠ
증강현실에 마커를 띄우고 있고
지금은 마커 하나까지 가는 방향을 알려주는 화살표를 띄워주려 합니다
근데 문제가... while문 다음에
double azi = ARData.bearingP1toP2
여기 고정된 위도 경도값을 넣었을 때는
화살표가 잘 나오는데...
방향을 틀때마다 적절한 화살표가 나와줍니다..
근데 위도경도값을 받아오도록 하면 화살표가 여러개 겹쳐서 뜨네요
고정된걸 받아오는걸로 바꾸는것 뿐인데 이렇게 되는 이유를 당최 알수가 없어서
혹시나 싶어서 올려봅니다...
화살표가 하나씩 뜨게 하려면 어떻게 해야 하나요?