일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- 안드로이드 2.0 개발
- 안드로이드개발
- 안드로이드 개발
- 안드로이드폰
- MapView
- objective-c
- 안드로이드 개발 강좌
- 안드로이드2.0
- SKY 시리우스
- 영어
- 안드로이드2.0개발
- 구글 안드로이드 개발
- sky 시리우스폰
- android
- Form Stuff
- 안드로이드 개발 2.0
- 인기있는 블로그 만들기
- 하루 한마디 영어
- 스카이 안드로이드폰 시리우스 K양 동영상
- 아이폰 배경화면
- 하루한마디영어
- 스카이 안드로이드폰 시리우스
- 안드로이드 배경화면
- 안드로이드 바탕화면
- 안드로이드 개발 2.0 강좌
- 구글 안드로이드
- 구글안드로이드
- 스마트폰 배경화면
- 아이폰 바탕화면
- Today
- Total
moozi
MapView 이용하기 4 - 원하는 위치 이동, 표시 본문
이번 강좌에서는 지난 강좌 MapView 이용하기 3 - MapView 띄우기 에서 이어집니다.
지도상에서 원하는 위치로 이동해서 아이콘으로 위치를 표시하는 코드를 추가해 보겠습니다.
이번 강좌 역시 안드로이드 개발자사이트의 내용을 토대로 살펴봅니다.
1. 먼저 다음 아이콘을 다운로드 받아 바탕화면에 저장한 다음 res -> drawable-hdpi 폴더에 끌어다 놓습니다.
3. HelloItemizedOverlay.java 를 다음과 같이 편집합니다.
package my.HelloMyMap;
import java.util.ArrayList;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}
@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();
}
}
코드를 살펴보면 HelloItemizedOverlay 클래스는 ItemizedOverlay 클래스를 상속받습니다.
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 에서 OverlayItem들을 저장할 ArrayList인 mOverlays 객체를 생성합니다.
boundCenterBottom() 은 아이콘의 아래의 중간부분이 좌표에 위치하도록 지정합니다.
populate(); 는 add()메서드가 호출될 때마다 호출해야 하는데, 각각의 OverlayItem 들을 읽어서 그려낼 준비를 하는 역할을 합니다.
4. HelloMyMap.java 를 다음과 같이 편집합니다.
package my.HelloMyMap;
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();
mc.animateTo(p);
mc.setZoom(5);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.androidmarker);
itemizedOverlay = new HelloItemizedOverlay(drawable);
OverlayItem overlayitem = new OverlayItem(p, "", "");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
}
}
코드를 대략 살펴보면 GeoPoint p=new GeoPoint(37450877,126768494); 에서 원하는 좌표점(위도, 경도)을 갖는 p 객체를 생성합니다. 위도와 경도는 지난강좌 MapView 이용하기 1 - 위도, 경도 구하기 에서 구한 값을 사용하면 됩니다. ','를 뺀 값을 입력하세요. ( 필자의 다음 글을 참조하세요. => http://moozi.tistory.com/56 )
mc.animateTo(p); 는 좌표점으로 이동합니다.
mc.setZoom(5); 는 확대정도를 지정합니다.
mapOverlays = mapView.getOverlays(); 는 맵뷰의 overlay list 를 얻어옵니다.
OverlayItem overlayitem = new OverlayItem(p, "", ""); 는 좌표 p 를 이용해서 overlayitem을 생성합니다.
itemizedOverlay.addOverlay(overlayitem); 는 overlayitme 객체를 itemizedOverlay에 추가합니다.
mapOverlays.add(itemizedOverlay); 는 itemizedOverlay를 mapOverlays에 추가합니다.
5. Ctrl + F11 로 실행합니다.
[ 실행결과 ]
실행결과를 보면 지도가 서울을 중심으로 나타나며, 좌표점에 안드로이드 아이콘 이미지가 출력됨을 알 수 있습니다.
'안드로이드개발강좌' 카테고리의 다른 글
WebView 이용하기 - 구글 홈페이지 띄우기 (12) | 2010.03.02 |
---|---|
MapView 이용하기 5 - onTab() 사용 (4) | 2010.02.25 |
MapView 이용하기 3 - MapView 띄우기 (19) | 2010.02.16 |
MapView 이용하기 2 - API Key 얻어오기 (23) | 2010.02.03 |
MapView 이용하기 1 - 위도, 경도 구하기 (0) | 2010.01.23 |