안드로이드 개발 질문/답변
(글 수 45,052)
public class mapp extends MapActivity {
private MapView mMap;
private MyLocationOverlay me = null;
AlertDialog.Builder alertDialog;
MyLocationOverlay2 mLocation;
LocationManager locationMgr = null;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locationMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.NO_REQUIREMENT);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
locationMgr.getProvider(LocationManager.GPS_PROVIDER);
mMap = (MapView)findViewById(R.id.map_view);
MapController mapControl = mMap.getController();
mapControl.setZoom(19);
mMap.setBuiltInZoomControls(true);
mp = MediaPlayer.create(this, R.raw.test);
GeoPoint pt = new GeoPoint((int)(35.178193* 1000000.0), (int)(126.915779* 1000000.0));
mapControl.setCenter(pt);
Drawable marker = getResources().getDrawable(R.drawable.bluemarker);
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker
.getIntrinsicHeight());
mMap.getOverlays().add(new SitesOverlay(marker));
me = new MyLocationOverlay(this, mMap);
mMap.getOverlays().add(me);
mMap.postInvalidate();
mLocation = new MyLocationOverlay2(this, mMap);
List<Overlay> overlays = mMap.getOverlays();
overlays.add(mLocation);
mLocation.runOnFirstFix(new Runnable() {
public void run() {
mMap.getController().animateTo(mLocation.getMyLocation());
}
});
}
@Override
public void onResume() {
super.onResume();
mLocation.enableMyLocation();
mLocation.enableCompass();
}
@Override
public void onPause() {
super.onPause();
mLocation.disableMyLocation();
mLocation.disableCompass();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_S) {
mMap.setSatellite(!mMap.isSatellite());
return (true);
} else if (keyCode == KeyEvent.KEYCODE_Z) {
mMap.displayZoomControls(true);
return (true);
}
return (super.onKeyDown(keyCode, event));
}
private GeoPoint getPoint(double lat, double lon) {
return (new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0)));
}
private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items = new ArrayList<OverlayItem>();
private Drawable marker = null;
public SitesOverlay(Drawable marker) {
super(marker);
this.marker = marker;
items.add(new OverlayItem(getPoint(35.178140, 126.914974),
"첫번째목적지 입니다.", "설명입니다\n현재위치에서 m떨어져있습니다"));
items.add(new OverlayItem(getPoint(35.177702, 126.915231),
"첫번째목적지관입니다.", "설명입니다\n현재위치에서 m떨어져있습니다"));
items.add(new OverlayItem(getPoint(35.177263, 126.915392),
"첫번째목적지 입니다.", "설명입니다\n현재위치에서 m떨어져있습니다"));
populate();
}
@Override
protected OverlayItem createItem(int i) {
return (items.get(i));
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);
}
@Override
protected boolean onTap(int i) {
OverlayItem layItem = items.get(i);
onShowDialog(layItem);
mp.start();
return true;
}
@Override
public int size() {
return (items.size());
}
}//SitesOverlay
private void onShowDialog(OverlayItem item) {
alertDialog = new AlertDialog.Builder(mMap.getContext());
alertDialog.setTitle(item.getTitle());
alertDialog.setMessage(item.getSnippet());
alertDialog.setPositiveButton("확 인", null);
alertDialog.show();
}// Dialog
class MyLocationOverlay2 extends MyLocationOverlay {
public MyLocationOverlay2(Context context, MapView mapView){
super(context, mapView);
}
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
이렇게 하면 해당 좌표에 마커가 4개 찍힙니다.
제가 물어 보고 싶은것은 저 찍힌 4개의 마커 말고 다른 마커를 다른곳에 넣고 싶은데
어떻게 하면 되죠???
잘모르겠네요~
도와주세요




items.add(new OverlayItem(getPoint(35.178140, 126.914974),
"첫번째목적지 입니다.", "설명입니다\n현재위치에서 m떨어져있습니다"));
여기서 두 수를 바꿔 넣으면 새로운 곳에 마커를 더 추가할 수 있습니다~