0

I am building an iOS app using Rubymotion. I am trying to draw a line (path) on a map using coordinates. I can run it in my app but I see no lines on the map (and no errors either).

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

view.addSubview(@mapview)

Then I try to draw the line

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 に答える