百度地图:加强篇(覆盖物的实现)

本文详细介绍了如何使用百度地图API在底图上添加覆盖物,包括圆形几何图形、文本、多条目图标及泡泡显示的效果。通过创建自定义覆盖物,设置几何图形、TextOverlay、ItemizedOverlay及实现点击事件来展示覆盖物的功能。示例代码包括GraphicsOverlayDemo、TextOverlayDemo、ItemizedOverlayDemo及其相应效果。
摘要由CSDN通过智能技术生成

覆盖物
如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的处理。
覆盖物包括:

  1. 覆盖物的抽象基类:Overlay(核心类)
  2. 文字绘制覆盖物:TextOverlay
  3. 分条目覆盖物:ItemizedOverlay
  4. 路线规划覆盖物:RouteOverlay
  5. 换乘路线覆盖物:TransitOverlay
  6. 我的位置覆盖物:MyLocationOverlay

    1、实现目的:在底图上画一个圆形的几何图形(覆盖物)
    实现过程:1、建一个基类实现基本的底图效果,再建一个类实现覆盖物,当前类继承基类;2、然后通过
    //①获取mapView存放覆盖物的集合
    List overlays = mapView.getOverlays();
    // ②创建自己的overlays信息并添加集合中
    GraphicsOverlay overlay = new GraphicsOverlay(mapView);
    // 设置几何图形
    setData(overlay);
    overlays.add(overlay);
    // ③刷新mapView的显示内容
    mapView.refresh();
    3、设置几何图形:通过新建一个图形Graphic(geometry, symbol),装几何元素+样式参数,然后将该图形添加到图形的overlay里面。overlay.setData(graphic);再设置几何元素和样式参数。
    4、再设置Manifest.xml的内容即可。
    实现效果:
    这里写图片描述
    GraphicsOverlayDemo.java

package huaxa.it.map;

import java.util.List;

import com.baidu.mapapi.map.Geometry;
import com.baidu.mapapi.map.Graphic;
import com.baidu.mapapi.map.GraphicsOverlay;
import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.Symbol;

import android.R.color;
import android.R.drawable;
import android.os.Bundle;

/**
 * @项目名: BaiduMap
 * @包名: huaxa.it.map
 * @类名: GraphicsOverlayDemo
 * @创建者: 黄夏莲
 * @创建时间: 2016年12月1日 ,下午6:13:46
 * 
 * @描述: TODO
 */
public class GraphicsOverlayDemo extends BaseActivity
{
   
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        draw();
    }

    /**
     * 绘制几何图形
     */
    private void draw()
    {
        // 覆盖物操作
        // ①获取存放覆盖物的集合(MapView)
        List<Overlay> overlays = mapView.getOverlays();
        // ②创建自己的overlays信息添加集合中
        GraphicsOverlay overlay = new GraphicsOverlay(mapView);
        // 关于几何图形设置
        setData(overlay);
        overlays.add(overlay);
        // ③刷新mapView的显示内容
        mapView.refresh();

    }

    /**
     * 几何图形设置
     * 
     * @param overlay
     */
    private void setData(GraphicsOverlay overlay)
    {

        // 绘制圆
        /**
         * setCircle(GeoPoint geoPoint, int radius) 设置图形为圆 参数: geoPoint地理坐标
         * radius圆的半径,单位:米
         */
        // 几何元素的定义
        // 圆心+半径
        Geometry geometry = new Geometry();
        geometry.setCircle(geoPoint, 1000);
        // 样式
        // 颜色+是否填充+如果不填充,绘制圆的线条的粗细
        Symbol symbol = new Symbol();
        /**
         * setSurface
         * 
         * public void setSurface(Symbol.Color color, int status, int linewidth)
         * 设置面样式 参数: color - 颜色 status - 填充状态,0表示不填充,1表示填充 linewidth -
         * 线宽,当填充状态为填充时线宽无意义
         */
        Symbol.Color color = symbol.new Color();
        //指定三色
        color.red = 255;
        color.green = 0;
        color.blue = 0;
        color.alpha = 100;
        symbol.setSurface(color, 1, 0);
        Graphic 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值