我正在使用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)
答案 0 :(得分:1)
我不是ruby的专家,但为了在地图上实际看到叠加视图,您需要将您的类设置为地图的委托并实现– mapView:viewForOverlay:
协议方法,您需要返回要显示地图的实际MKPolyLineView
对象!
在Objective C中,我只需将此方法实现为:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id < MKOverlay >)overlay
{
if ( [overlay isKindOfClass:[MKPolyLine class]] {
MKPolyLineView *polyView = [[MKPolyLineView alloc] initWithPolyline:overlay];
return polyView;
}
}
希望这有帮助!