0

我正在使用 Rubymotion 构建一个 iOS 应用程序。我正在尝试使用坐标在地图上绘制一条线(路径)。我可以在我的应用程序中运行它,但我在地图上看不到任何线条(也没有错误)。

@mapview = MKMapView.alloc.initWithFrame(view.bounds)
@mapview.mapType = MKMapTypeStandard
@mapview.delegate = self
@mapview.showsUserLocation = true
@mapview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

view.addSubview(@mapview)

然后我试着画线

path = [CLLocationCoordinate2D.new(41.878114,-87.629798), CLLocationCoordinate2D.new(41.865947,-87.622576)]

pointers = Pointer.new(CLLocationCoordinate2D.type, path.length)
pointers[0] = path[0]
pointers[1] = path[1]

polyLine = MKPolyline.polylineWithCoordinates(pointers, count:2)

@mapview.addOverlay(polyLine)
4

1 回答 1

1

我不是 ruby​​ 专家,但是为了在地图上实际看到覆盖视图,您需要将您的类设置为地图的委托并实现– mapView:viewForOverlay:协议方法,您需要在其中返回实际MKPolyLineView对象以显示地图!

在Objective CI中,只需将此方法实现为:

 - (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id < MKOverlay >)overlay
 {
    if ( [overlay isKindOfClass:[MKPolyLine class]] {
       MKPolyLineView *polyView = [[MKPolyLineView alloc] initWithPolyline:overlay];
       return polyView;
    }
 }

希望这可以帮助!

于 2013-07-10T13:52:38.257 回答