5.多段线(Polyline)

         Polyline在Osmdroid中主要承担地图上多段线的表达

5.多段线(Polyline)_第1张图片

1.对象创建及简单操作 

        创建及基本使用方式(使用默认点击事件):

 public  void  Test(){

        //创建新的多段线图层
        Polyline pl=new Polyline() ;

        //随机添加点
        for (int i=0;i<10;i++){
            pl.addPoint(new GeoPoint(Math.random(),Math.random()));
        }

        //设置信息框标题
        pl.setTitle("线数据");

        //设置信息框内容
        pl.setSubDescription(pl.getDistance()+"");

        //设置线宽度为50
        pl.getOutlinePaint().setStrokeWidth(50);

        //设置线的颜色为红色
        pl.getOutlinePaint().setColor(Color.RED);

        pl.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble,osmv));
 
        osmv.getOverlayManager().add(pl);

    }

5.多段线(Polyline)_第2张图片

当添加以下代码后,覆盖默认的点击事件后,只会执行自己定义的点击事件,不会显示信息框了:

//        设置点击监听
        pl.setOnClickListener(new Polyline.OnClickListener() {
            @Override
            public boolean onClick(Polyline polyline, MapView mapView, GeoPoint eventPos) {

                //这里可以执行任何线点中后想执行的时间
                return false;
            }
        });

 2.使用提示

优点:

1)一个对象可承载Gis概念中的一个Feature对象(点),及包含空间数据和属性数据。

2)可通过MilestoneManagers实现线的符号化。

3)对象承载的数据可通过 setRelatedObject进行存储。

缺点:

1)在显示的表达上只能在地图上进行符号化的表达,没有标注(标签)效果。可通过派生类的方式弥补这个缺陷。

2)通过MilestoneManagers实现线的符号化,在数据量大时相较于无符号化会造成比较严重的卡顿。

3)触摸点击不是特别灵敏,需要增加线宽才能比较方便的点击到这个线对象。

你可能感兴趣的:(Osmdroid,gis,java,android)