我正在使用谷歌地图sdk。我想在每5秒后更新引脚的gps坐标。目前我只是更新GMSMarker的位置属性。但它会产生跳跃效应。我想在地图上顺利移动标记。
这是我更新标记位置的代码
-(void)updateLocationoordinates(CLLocationCoordinate2D) coordinates
{
if (marker == nil) {
marker = [GMSMarker markerWithPosition:coordinates];
marker.icon = [UIImage imageNamed:CAR_FOUND_IMAGE];
marker.map = mapView_;
} else
marker.position = coordinates;
}
答案 0 :(得分:34)
将您的其他块更改为更像这样的内容:
[CATransaction begin];
[CATransaction setAnimationDuration:2.0];
marker.position = coordindates;
[CATransaction commit];
我们允许您使用Core Animation为Google地图设置动画。
对于工作样本,请参阅SDK示例应用程序中的AnimatedCurrentLocationViewController.{c,m}
。
答案 1 :(得分:0)
只是在视图中初始化标记确实加载并在你想要的时候更新它,不需要任何类型的动画,如
export class ParentComponent implements AfterViewInit {
@ViewChild('childComponentElement') el:ElementRef;
ngAfterViewInit() {
console.log(this.el.nativeElement.value);
}
doSomeClick(){
}
}
答案 2 :(得分:0)
布雷特答案-3和4
CATransaction.begin()
CATransaction.setAnimationDuration(2.0)
marker.position = coordindates
CATransaction.commit()