Android开发--百度地图(二)

      针对百度地图的应用,上一篇应该有写过简单的关于缩放、旋转等的代码。接下来,我们需要深入学些百度地图的其他操作:

      一、文字覆盖:

     添加文字标注的一般流程: 
   1. 用TextItem准备文字数据
  2. 创建TextOverlay,调用 addText(TextItem)接口添加文字. 
  3. 调用MapView.getOverlays().add()方法添加overlay到mapview中。 
  4.调用MapView.refresh() 使Overlay生效。

   //1. 用TextItem准备文字数据
       TextItem item=new TextItem();
       //设置样式
       item.align=TextItem.ALIGN_CENTER;
       Symbol.Color color=new Symbol().new Color();
       color.red=255;
       color.alpha=200;
       color.green=100;
       color.blue=0;
       item.fontColor=color;
       item.fontSize=20;
       item.pt=geopoint;
       item.text="xxxx";
       //2. 创建TextOverlay,调用 addText(TextItem)接口添加文字.
       TextOverlay overlay=new TextOverlay(mapview);
       overlay.addText(item);
       //3. 调用MapView.getOverlays().add()方法添加overlay到mapview中。
       mapview.getOverlays().add(overlay);
       //4.调用MapView.refresh() 使Overlay生效。
       mapview.refresh();

       由于图片覆盖的步骤,基本相似,所以就不多做赘述了。出来简单的文字和图片覆盖之外,我们还会用到更加复杂的覆盖。比如:百度地图中搜索美食,当点击每一个单一的条目,都会悬浮出一个小窗口介绍。那么这种负责的覆盖操作我们应该怎么做啦?

   
  //加载悬浮条目到mapview中去
 private void initview() {
  itemview = View.inflate(getApplicationContext(), R.layout.item,null);
  tv_title = (TextView) itemview.findViewById(R.id.tv_title);
  MapView.LayoutParams params=new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,MapView.LayoutParams.WRAP_CONTENT,
  geopoint,MapView.LayoutParams.BOTTOM_CENTER);
  mapview.addView(itemview, params);
  itemview.setVisibility(View.INVISIBLE);
 }   
  添加覆盖物的一般流程:
  1. 用OverlayItem 准备overlay数据。
  2. 创建ItemizedOverlay实例,调用 addItem(OverlayItem) 接口添加overlay.  若一次性添加的overlay数据较多,可以使用 addItem(List) 接口.
  3. 调用MapView.getOverlays().add()方法添加overlay到mapview中。
  4. 调用MapView.refresh() 使Overlay生效。

//1. 用OverlayItem 准备overlay数据。
  List list=new ArrayList();
  {
  OverlayItem item1=new OverlayItem(geopoint,"xxx","xxx");
  list.add(item1);
  }

 //2. 创建ItemizedOverlay实例,调用 addItem(OverlayItem) 接口添加overlay.

  items = new ItemizedOverlay(getResources().getDrawable(R.drawable.eat_icon), mapview)
    {

//为Item条目设置点击事件
      @Override
      protected boolean onTap(int index) {
       OverlayItem overlay=items.getItem(index);
       String title= overlay.getTitle();
       tv_title.setText(title);
       itemview.setVisibility(View.VISIBLE);
    return super.onTap(index);
   }
    };
  items.addItem(list);

  //3. 调用MapView.getOverlays().add()方法添加overlay到mapview中
  mapview.getOverlays().add(items);

 //4. 调用MapView.refresh() 使Overlay生效。
  mapview.refresh();

 

你可能感兴趣的:(Android开发--百度地图(二))