메뉴 건너뛰기

app

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

박영식2012.01.16 08:09조회 수 4478댓글 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 조회 6148
suritam9
2013.04.04 조회 2223
suritam9
2012.09.14 조회 2536
suritam9
2012.06.24 조회 2383
suritam9
2012.06.24 조회 2804
suritam9
2012.06.24 조회 2579
suritam9
2012.06.22 조회 2599
박영식
2011.09.22 조회 2562
박영식
2011.09.21 조회 2503
박영식
2011.02.18 조회 2978
박영식
2010.09.29 조회 4794
첨부 (0)
위로