Marker偏移的问题
Created by: HADB
建议添加一个Marker的offset的设置
对于自定义图片的Marker,目前使用情况上来看,发现iOS上是以Marker图片的center-middle点来定位的,而Android上,是以图片的center-bottom点来定位的,体验不太一致。
高德文档查到的结果如下:
iOS
- annotationView的中心默认位于annotation的坐标位置,可以设置centerOffset改变view的位置,正的偏移使view朝右下方移动,负的朝左上方,单位是屏幕坐标
Android
- 锚点:图标摆放在地图上的基准点。默认情况下,锚点是从图片下沿的中间处。
目前我的解决方法是在iOS上的Marker贴图下部添加等高的空白,Android上的Marker底部不添加空白。
最好是有一个手动设置offset的方法。这样对于一些不规则的Marker图形,也可以手动设置它的中心点了。
查了下高德的api iOS上设置offset的方式:
// 设置中心点偏移,使得标注底部中间点成为经纬度对应点
annotationView.centerOffset = CGPointMake(0, -18);
Android上设置offset的方式:
public void setAnchor(float anchorU, float anchorV)
设置Marker覆盖物的锚点比例。 锚点是定位图标接触地图平面的点。图标的左上顶点为(0,0)点,右下点为(1,1)点。默认情况下,锚点为(0.5,1.0)。
参数:
anchorU - 锚点水平范围的比例。
anchorV - 锚点垂直范围的比例。
从以下版本开始:
2.0.4
高德API对于安卓和iOS上offset的单位和基准也不同,所以可能需要针对不同的平台提供两个接口,分别设置。