Mapbox自定义用户位置注释图像和位置

时间:2018-05-26 02:56:31

标签: ios mapbox

我希望能够在iOS中的Mapbox地图上显示用户位置的自定义图像,能够从内部源设置当前用户位置,而不是使用内部GPS源。

内置用户位置工具似乎只能从Mapbox内部位置引擎中获取位置。我在地图上添加了一个自定义注释,当我得到一个新的位置修复时我可以更新它的位置,但是运动是不稳定的(我可以使用相机动画来平移地图,但不是注释。)

iOS Mapbox SDK中是否有任何方法可以设置更改注释位置的动画?

1 个答案:

答案 0 :(得分:0)

所以这就是我想出来的。在MGLMapViewDelegate我使用didFinishRenderingFrame()回调来更新位置,在两个最近的位置之间进行插值。 posAnnotation是与MGLPointAnnotation相关联的flightMarker,其MGLAnnotationView已扩展为添加UIImageView并保留位置。

        override fun didFinishRenderingFrame(mapView: MGLMapView, fullyRendered: Boolean) {
            val frac = min((CFDate.getCurrentAbsoluteTime() - lastUpdateTimestamp) / lastUpdateInterval, 1.0)
            if(flightMarker.location.valid)
                posAnnotation.coordinate = flightMarker.interpolatedLocation(frac)
        }

        override fun viewForAnnotation(mapView: MGLMapView, annotation: MGLAnnotation): MGLAnnotationView? {
            return if (annotation == posAnnotation) flightMarker else null
        }