Fengmap Android SDK

点标注 Fengmap Android SDK 提供根据地图坐标点添加标注的功能。点标注可分为文字标注(FMTextMarker)、图片标注(FMImageMarker)、定位标注(FMLocationMarker)。

图片标注

使用图片标注功能用户可在指定坐标点位置添加自定义的图片标识。图片标注需要三个参数:groupId(楼层Id)、地图坐标、resId(图片资源ID),具体操作步骤如下:

  • • 添加图片标注前需要先获取指定楼层。
    int groupId = mFMMap.getFocusGroupId();
  • • 创建图片标注层并添加到指定楼层上面。
    mImageLayer = mFMMap.getFMLayerProxy().createFMImageLayer(groupId);
    mFMMap.addLayer(mImageLayer);
  • • 最后在图片标注层上添加文字标注(单个或多个)。
    FMMapCoord centerCoord = new FMMapCoord(1.296164E7, 4861845.0);
    mImageMarker = new FMImageMarker(centerCoord, R.mipmap.pic);
    //设置图片宽高
    mImageMarker.setMarkerWidth(30);
    mImageMarker.setMarkerHeight(30);
    //设置图片垂直偏离距离
    mImageMarker.setFMImageMarkerOffsetMode(FMImageMarker.FMImageMarkerOffsetMode.FMNODE_CUSTOM_HEIGHT);
    mImageMarker.setCustomOffsetHeight(5);
    
    mImageLayer.addMarker(mImageMarker);            //添加图片标志物
文字标注

文字标注是用户可在指定坐标点位置添加自定义的文字。文字标注针对楼层的,添加文字标注需要三个参数:groupID(楼层ID)、x(地图坐标x)、y(地图坐标y),具体操作步骤如下:

  • • 添加文字标注前需要先获取指定楼层。
    int groupId = mFMMap.getFocusGroupId();
  • • 创建文字标注层并添加到指定楼层上面。
    mTextLayer = mFMMap.getFMLayerProxy().createFMTextLayer(groupId);
    mFMMap.addLayer(mTextLayer);
  • • 最后在文字标注层上添加文字标注(单个或多个)。
    FMMapCoord centerCoord = new FMMapCoord(1.296164E7, 4861845.0);
    mTextMarker = new FMTextMarker(centerCoord, "添加一个文字标注");
    mTextMarker.setTextFillColor(Color.RED);
    mTextMarker.setTextStrokeColor(Color.RED);
    mTextMarker.setTextSize(30);
    //设置文字偏移高度
    mTextMarker.setFMTextMarkerOffsetMode(FMTextMarker.FMTextMarkerOffsetMode.FMNODE_CUSTOM_HEIGHT);
    mTextMarker.setCustomOffsetHeight(5);
    
    mTextLayer.addMarker(mTextMarker);
定位标注

定位标注是用户可在指定坐标点位置添加自定义的图片标注。图片标注针对地图,一个地图可以有多个定位标注。一般该定位标注用于导航过程中位置的标识。添加定位标注需要三个参数: x(地图坐标x)、y(地图坐标y)、resId(定位图标),具体步骤如下:

*注:定位标注属于全地图模式,添加locationMarker后,在每一层都会显示,根据业务需求调用setSelected(boolean selected);设置其显示隐藏。

  • • 创建定位标注层并添加到地图上面。
    mLocationLayer = mFMMap.getFMLayerProxy().getFMLocationLayer();
    mFMMap.addLayer(mLocationLayer);
  • • 设置定位标注在地图中的位置。
    FMMapCoord centerCoord = new FMMapCoord(1.296164E7, 4861845.0);
    mLocationMarker = new FMLocationMarker(groupId, centerCoord);
    //设置定位点图片
    mLocationMarker.setActiveImageFromAssets(“active.png”);
    mLocationMarker.setStaticImageFromAssets(“static.png”);
    //设置定位图片宽高
    mLocationMarker.setMarkerWidth(30);
    mLocationMarker.setMarkerHeight(30);
    mLocationLayer.addMarker(mLocationMarker);