메뉴 건너뛰기

app

[android] 마커와 마커 클릭시 설명 이벤트

박영식2012.01.16 08:09조회 수 4459댓글 0

    • 글자 크기

위 사이트를 참고했다.

패키지명 아래에 클래스 네임으로 자바파일을 걍 만들면 된다.

package com.paxmodept.test;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.widget.Toast;

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

public class mapItemizedOverlay extends ItemizedOverlay {

    private Context mContext;
    private ArrayList<OverlayItem> mOverlays 
= new ArrayList<OverlayItem>();
    
    public mapItemizedOverlay(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);
        Toast.makeText
(mContext, item.getSnippet(), Toast.LENGTH_LONG).show();
        return true;
    }
    
}







=============================================================================================







import com.google.android.maps.OverlayItem;
import android.graphics.drawable.Drawable;

적용은  mc(map control) 생성후


        mc = mapView.getController();

        String coordinates[] = {"37.5589099", "126.9444183"};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);
 
        p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lng * 1E6));
        String coordinates2[] = {"37.557465", "126.9463232"};
        double lat2 = Double.parseDouble(coordinates2[0]);
        double lng2 = Double.parseDouble(coordinates2[1]);
 
        p2 = new GeoPoint(
            (int) (lat2 * 1E6), 
            (int) (lng2 * 1E6));
 
        mc.animateTo(p);
        mc.setZoom(17);
        
        mapOverlays = mapView.getOverlays();
        drawable = this.getResources().getDrawable(R.drawable.marker);
        itemizedOverlay = new mapItemizedOverlay(drawable, this);
       
        OverlayItem overlayitem1 = 
new OverlayItem(new GeoPoint(p), "창이름","설명");
        OverlayItem overlayitem2 = 
new OverlayItem(new GeoPoint(p2), "창이름","설명");
        
        itemizedOverlay.addOverlay(overlayitem1);
        itemizedOverlay.addOverlay(overlayitem2);
        mapOverlays.add(itemizedOverlay);


위와 같이 하면 된다. 버전에 따라 다르게 나오는 듯 하다.

박영식 (비회원)
    • 글자 크기
[xcode] XCode could not find a valid private certificate/valid key-pair for this profile in your keychain (by 박영식) [android] 메뉴 버튼을 누르면 메뉴가 나오게 하는 코드 (by 박영식)

댓글 달기

suritam9
2013.04.25 조회 6108
suritam9
2013.04.04 조회 2197
suritam9
2012.09.14 조회 2515
suritam9
2012.06.24 조회 2366
suritam9
2012.06.24 조회 2776
suritam9
2012.06.24 조회 2532
suritam9
2012.06.22 조회 2582
박영식
2011.09.22 조회 2544
박영식
2011.09.21 조회 2488
박영식
2011.02.18 조회 2964
박영식
2010.09.29 조회 4757
첨부 (0)
위로