public void GetLocations() {
if (myLocation != null) {
latPoint = myLocation.getLatitude();
lngPoint = myLocation.getLongitude();
speed = (float)(myLocation.getSpeed() * 3.6);
}
GeoPoint gp = new GeoPoint((int)(latPoint * 1E6),(int)(lngPoint * 1E6));
controller.animateTo(gp);
curLocation = myLocation;
String strloc = String.format("위도:%f, 경도:%f", (float)latPoint, (float)lngPoint);
setOverlay(gp, strloc);
}
public void setOverlay(GeoPoint p, String addr) {
Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.green_dot);
IconOverlay overlay = new IconOverlay(icon, p, addr);
List<Overlay> overlays = mapView.getOverlays();
overlays.clear(); // 위치가 이동되면 기존 overlay 정보는 제거
overlays.add(overlay);
}
public void GeoPointSU() {
GeoPoint SN = new GeoPoint(37566535, 126977969);
MapController mc=mapView.getController();
mc.animateTo(SN);
mc.setZoom(17);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.red_dot);
itemizedOverlay = new MyItemizedOverlay(drawable);
OverlayItem overlayitemSN = new OverlayItem(SN, "", "");
itemizedOverlay.addOverlay(overlayitemSN);
mapOverlays.add(itemizedOverlay);
}
현재 맵 상에 GetLocations() 현재의 위치를 계속적으로 찍어줍니다.
그러면서 소스상에서 clear() 를 하기때문에 새롭게 위치를 찍어주죠...
질문드립니다.
GeoPointSU() 서울 좌표처럼 고정된 값도 맵 상에 나타내고 있는데요...
위에서 onLocationChanged(Location location) 할 때마다 현재 위치를 새롭게 찍다보니...
고정된 서울값도 같이 사라져 버립니다.
현재 위치를 매초마다 계속해서 바뀌다 보니...
아예 고정위치 표시는 나타나지를 않습니다.
clear() 메소드를 어떻게 사용해야 될까요???




지웠다 다시 넣는게 아니라 아래와같이 overlay에 메소드를 넣어 ArrayList값을 변경하셔도 되고
자신의 위치를 표시하는 것이라면 기본 제공되는 MyLocationOverlay를 쓰시는게 가장 좋습니다.
public void changeOverlay(OverlayItem overlay) {
mOverlays.set(0, overlay);
populate();
}