点标注
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);