用户可根据坐标点集绘制折线。注:线是针对整个地图的,线段的点可以是不同楼层的点。示例代码如下:
构建线图层,并添加至地图,增、删、更新线标注。可参考代码如下设置:
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);