달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2011. 9. 1. 15:34

지도기능 이용하기 Study/Android2011. 9. 1. 15:34

Location을 사용할때는

getSystemService를 이용해 Context.LOCATION_SERVICE 정보를 가져옴

지도 - > 2가지의 provider를 가짐

1) 최근 위치값 1개 저장하는곳 (GPX)

2) 여러개 저장하는 곳  (KML)



예제 내용 : 지도 위에 아이콘 띄우기


import java.util.List;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.ZoomControls;

import com.google.android.maps.GeoPoint;
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 HelloMyMap extends MapActivity {
 
 List<Overlay> mapOverlays; 
 Drawable drawable; 
 HelloItemizedOverlay itemizedOverlay;
 LinearLayout linearLayout;
 MapView mapView; 
 ZoomControls mZoom;
    
 @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
 
/** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        
        //위성지도
        mapView.setSatellite(true);
        
        //위치
        GeoPoint p=new GeoPoint(37450877,126768494);
        MapController mc=mapView.getController();        
        
        //시작할때 p위치로 가셈ㅋ
        mc.animateTo(p);
        
        mc.setZoom(5); 
        
        //그림을 그리기 위한 객체
        mapOverlays = mapView.getOverlays(); 
        
        //이미지를 가져옴
        drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
        
        //지도정보와 이미지를 보내줌
        itemizedOverlay = new HelloItemizedOverlay(drawable,this);
        
        OverlayItem overlayitem = new OverlayItem(p, "안녕", "서울");
        
        itemizedOverlay.addOverlay(overlayitem); 
        mapOverlays.add(itemizedOverlay);
    }     
    
}

package com.soldesk.HelloMyMap;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class HelloItemizedOverlay extends ItemizedOverlay {

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

public HelloItemizedOverlay(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();
}

// 이미지를 선택하였을때 이미지
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}

}


 

:
Posted by 유쾌한순례자