我正在使用最新的Google Maps API for iOS绘制折线.我正在逐点构造折线,但是当我缩小折线从地图中消失(不是字面上的术语)时,它不能正常渲染,当我放大时,它只会显示线条.
这是放大时折线的显示方式
这是缩小时的显示方式
这里是我绘制折线的功能
- RCPolyline *polyline = [[RCPolyline alloc] init];
- [polyline drawPolylineFromPoint:self.selectedEmployee.location toPoint:location];
我有覆盖init:为RCPolyline是这样的东西
- - (instancetype)init {
- self = [super init];
- if (self) {
- self.strokeWidth = 5.0f;
- self.strokeColor = UIColor.redColor;
- self.geodesic = YES;
- self.map = [RCMapView sharedMapView];
- }
- return self;}
和drawPolylineFromPoint:toPoint:这样做
- - (void)drawPolylineFromPoint:(CLLocation *)pointX toPoint:(CLLocation *)pointY {
- GMSMutablePath *path = [GMSMutablePath path];
- [path addCoordinate:pointX.coordinate];
- [path addCoordinate:pointY.coordinate];
- self.path = path;}
解决方法
我发现这个故障,我正在制作RCPolyline类的本地实例,并且正在调用构建折线的方法,我想要的是为RCPolyline实例提供一个全局对象,并为RCPolyline类实例更新GMSPath
这样的:
- - (instancetype)initWithMap:(GMSMapView *)mapView {
- self = [super init];
- if (self) {
- self.strokeWidth = 4.0f;
- self.strokeColor = [UIColor redColor];
- self.geodesic = YES;
- self.map = mapView;
- self.mutablePath = [GMSMutablePath path];
- }
- return self;}
- - (void)appendPolylineWithCoordinate:(CLLocation *)location {
- [self.mutablePath addCoordinate:location.coordinate];
- self.path = self.mutablePath;}
PS:RCPolyline是GMSPolyline的子类