如何在Objective c中沿坐标平滑移动GMSMarker

时间:2013-10-01 11:44:01

标签: objective-c google-maps

我正在使用谷歌地图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; 
}

3 个答案:

答案 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()