如何另一个叠加项添加到Android的MapView类 [英] How to add another overlay item to a android mapview

查看:247
本文介绍了如何另一个叠加项添加到Android的MapView类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要另一个覆盖项添加到MapView类。我已经使用了标准的Andr​​oid开发人员指南,谷歌地图。我现在有一个选项卡中的MapView。我真的AP preciate任何想法。谢谢你。

下面是我的java类:

 公共类MapView类扩展MapActivity {    保护布尔isRouteDisplayed(){
        返回false;
    }    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.mapview);        MapView类MapView类=(图形页面)findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(真);        // JD体育标志开始
        清单<&叠加GT; mapOverlays =调用MapView.getOverlays();
        可绘制可绘制= this.getResources()
                .getDrawable(R.drawable.jd_sports_logo);
        //通行证绘制(JD体育标志)到HelloItemizedOverlay类
        HelloItemizedOverlay itemizedoverlay =
                新HelloItemizedOverlay(绘制);        双纬度= 51.545538;
        双经度= -0.477247;
        的GeoPoint点=新的GeoPoint((int)的(纬度* 1e6个电子),
                (中间体)(经度* 1e6个电子));        OverlayItem overlayitem =新OverlayItem(点,JD体育
                这是一个体育用品商店);        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        // JD体育标记结束        //健身第一标志开始
        清单<&叠加GT; mapOverlays1 =调用MapView.getOverlays();
        可绘制drawable1 = this.getResources()
                .getDrawable(R.drawable.fitness_first_logo);
        HelloItemizedOverlay itemizedoverlay1 =
                新HelloItemizedOverlay(绘制);        双latitude1 = 51.545157;
        双longitude1 = -0.477247;
        的GeoPoint点1 =新的GeoPoint((int)的(纬度* 1e6个电子),
                (中间体)(经度* 1e6个电子));        OverlayItem overlayitem1 =新OverlayItem(点,JD体育
                这是一个体育用品商店);        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        //健身第一末端标记
    }}

我HelloItemizedOverlay类:

 公共类HelloItemizedOverlay扩展ItemizedOverlay {    私人的ArrayList< OverlayItem> mOverlays =新的ArrayList< OverlayItem>();
    私人的ArrayList< OverlayItem> mOverlays1 =新的ArrayList< OverlayItem>();    公共HelloItemizedOverlay(可绘制defaultMarker){
        超(boundCenterBottom(defaultMarker));    }    公共无效addOverlay(OverlayItem叠加){        mOverlays.add(覆盖);
        填充();
    }    公共HelloItemizedOverlay(可绘制defaultMarker,上下文的背景下){
        超(defaultMarker);
        上下文mContext =语境;
    }    @覆盖
    保护OverlayItem createItem中(int i)以{
        // TODO自动生成方法存根
        返回mOverlays.get(ⅰ);
    }    @覆盖
    公众诠释大小(){
        // TODO自动生成方法存根
        返回mOverlays.size();
    }    @覆盖
    保护布尔中的onTap(INT指数){
        OverlayItem项目= mOverlays.get(指数);
        上下文mContext = NULL;
        AlertDialog.Builder对话框=新AlertDialog.Builder(mContext);
        dialog.setTitle(item.getTitle());
        dialog.setMessage(item.getSnippet());
        dialog.show();
        返回true;
    }}


解决方案

  OverlayItem overlayitem1 =新OverlayItem(点,JD体育,...

应该读

  OverlayItem overlayitem1 =新OverlayItem(点1,JD体育,...

不应该吗?

I need to add another overlay item to a mapview. I have used the standard android developers guide to google maps. I currently have the mapview within a tab. I would really appreciate any ideas. Thanks.

Below are my java classes:

public class Mapview extends MapActivity {

    protected boolean isRouteDisplayed(){
        return false;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapview);

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        // JD sports marker begin
        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources()
                .getDrawable(R.drawable.jd_sports_logo);
        //Passes drawable(jd sports logo) into HelloItemizedOverlay class
        HelloItemizedOverlay itemizedoverlay = 
                new HelloItemizedOverlay(drawable);

        double latitude = 51.545538;
        double longitude = -0.477247;
        GeoPoint point = new GeoPoint((int)(latitude * 1e6), 
                (int)(longitude * 1e6));

        OverlayItem overlayitem = new OverlayItem(point, "JD Sports", 
                "This is a sports shop");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        // JD sports marker ends

        // Fitness first marker begin
        List<Overlay> mapOverlays1 = mapView.getOverlays();
        Drawable drawable1 = this.getResources()
                .getDrawable(R.drawable.fitness_first_logo);
        HelloItemizedOverlay itemizedoverlay1 = 
                new HelloItemizedOverlay(drawable);

        double latitude1 = 51.545157;
        double longitude1 = -0.477247;
        GeoPoint point1 = new GeoPoint((int)(latitude * 1e6), 
                (int)(longitude * 1e6));

        OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports",
                "This is a sports shop");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        // Fitness first marker ends
    }

}

My HelloItemizedOverlay class:

public class HelloItemizedOverlay extends ItemizedOverlay {

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    private ArrayList<OverlayItem> mOverlays1 = new ArrayList<OverlayItem>();

    public HelloItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));

    }

    public void addOverlay(OverlayItem overlay) {

        mOverlays.add(overlay);
        populate();
    }

    public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
        super(defaultMarker);
        Context 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();
    }

    @Override
    protected boolean onTap(int index) {
        OverlayItem item = mOverlays.get(index);
        Context mContext = null;
        AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
        dialog.setTitle(item.getTitle());
        dialog.setMessage(item.getSnippet());
        dialog.show();
        return true;
    }

}

解决方案

OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports, ...

Should read

OverlayItem overlayitem1 = new OverlayItem(point1, "JD Sports", ...

Shouldn't it?

这篇关于如何另一个叠加项添加到Android的MapView类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆