蜂鸟视图室内地图 Android SDK

绘制形状 Fengmap Android SDK 支持自定义绘制图形,包括自定义绘制线、多边形等图形。

绘制线

用户可根据坐标点集绘制折线。注:线是针对整个地图的,线段的点可以是不同楼层的点。示例代码如下:

  • • 创建线图层。

    构建线图层,并添加至地图,增、删、更新线标注。可参考代码如下设置:

    mLineLayer = mFMMap.getFMLayerProxy().getFMLineLayer();
    mFMMap.addLayer(mLineLayer);
  • • 创建线段所需的坐标点。
    ArrayList<FMMapCoord> POINTS = new ArrayList<FMMapCoord>() {
        {
            add(new FMMapCoord(12961602, 4861851.5, 56));
            add(new FMMapCoord(12961625, 4861850.5, 56));
            add(new FMMapCoord(12961625, 4861825.0, 56));
        }
    };
  • • 创建线并添加至地图。
    ArrayList<FMSegment> segments = new ArrayList<>(1);
    FMSegment segment = new FMSegment(mFMMap.getFocusGroupId(), POINTS);
    segments.add(segment);
    
    FMLineMarker lineMarker = new FMLineMarker(segments);
    mLineLayer.addMarker(lineMarker);
绘制多边形

Fengmap Android SDK 支持绘制多边形操作。用户可根据坐标点集绘制多边形,注:多边形是针对楼层的,每一楼层可包含多个多边形。绘制多边形步骤如下:

  • • 添加多边形前需要先获取指定楼层。
    int groupId = mFMMap.getFocusGroupId();
  • • 创建多边形标注层并添加到指定楼层上面。
    mPolygonLayer = mFMMap.getFMLayerProxy().getFMPolygonLayer(groupId);
    
  • • 创建多边形并添加至地图。
    FMPolygonMarker polygonMarker = new FMPolygonMarker(POINTS);
    polygonMarker.setGroupId(mFMMap.getFocusGroupId());
    //设置垂直方向偏移
    polygonMarker.setFMPolygonMarkerOffsetMode(
    FMPolygonMarker.FMPolygonMarkerOffsetMode.FMNODE_CUSTOM_HEIGHT
    );
    polygonMarker.setCustomHeightOffset(5);
    
    polygonMarker.setPolygonColor(Color.RED);               //设置多边形内置颜色
    polygonMarker.setStrokeWidth(3f);                   //设置多边形画笔宽度
    mPolygonLayer.addMarker(polygonMarker);             //添加多边形标志物
    
绘制圆形

Fengmap Android SDK 支持绘制圆形操作。用户可根据中心点坐标和半径绘制圆形,注:圆形是针对楼层的,每一楼层可包含多个圆形。绘制圆形步骤如下:

  • • 添加模拟点坐标和半径。
    FMMapCoord centerCoord = new FMMapCoord(1.2961583E7, 4861865.0, 0.0);//圆心坐标
    float radius = 20f;//半径大小
    int segments = 40; //段数
  • • 创建多边形图层并添加到指定楼层上面。
    int groupId = mFMMap.getFocusGroupId();
    mPolygonLayer = mFMMap.getFMLayerProxy().getFMPolygonLayer(groupId);
    
  • • 在多边形图层上面添加圆形标注。
    FMPolygonMarker polygonMarker = new FMPolygonMarker(centerCoord, radius, segments);
    polygonMarker.setGroupId(mFMMap.getFocusGroupId());
    //设置偏移
    polygonMarker.setFMPolygonMarkerOffsetMode(
    FMPolygonMarker.FMPolygonMarkerOffsetMode.FMNODE_CUSTOM_HEIGHT);
    polygonMarker.setCustomHeightOffset(5);
    polygonMarker.setPolygonColor(Color.RED);
    polygonMarker.setStrokeWidth(3f);
    //添加圆形
    mPolygonLayer.addMarker(polygonMarker);
绘制矩形

Fengmap Android SDK 支持绘制矩形操作。用户可根据左上角坐标、右下角坐标绘制矩形,注:矩形是针对楼层的,每一楼层可包含多个矩形。绘制矩形步骤如下:

  • • 添加模拟点左上角坐标和右下角坐标。
    //创建自定义矩形PolygonMarker所需的左上角坐标和右下角坐标
     FMMapCoord leftTop = new FMMapCoord(1.2961538E7, 4861820.0);
     FMMapCoord rightBottom = new FMMapCoord(1.2961568E7, 4861850.0);
    
  • • 创建多边形图层并添加到指定楼层上面。
    int groupId = mFMMap.getFocusGroupId();
     //创建不规则图形图层并添加
     mPolygonLayer = mFMMap.getFMLayerProxy().getFMPolygonLayer(groupId);
    
  • • 在多边形图层上面添加矩形标注。
    FMPolygonMarker polygonMarker = new FMPolygonMarker(leftTop, rightBottom);
     polygonMarker.setGroupId(mFMMap.getFocusGroupId());
     //设置偏移
     polygonMarker.setFMPolygonMarkerOffsetMode(
     FMPolygonMarker.FMPolygonMarkerOffsetMode.FMNODE_CUSTOM_HEIGHT);
     polygonMarker.setCustomHeightOffset(6);
     //设置填充颜色
     polygonMarker.setPolygonColor(Color.parseColor("#800080"));
     polygonMarker.setPolygonAlpha(0.5f);
     polygonMarker.setStrokeWidth(1f);
     polygonMarker.setStrokeColor(Color.parseColor("#800080"));
     //添加矩形
     mPolygonLayer.addMarker(polygonMarker);