2013-07-10 3 views
0

Я создаю приложение iOS, используя Rubymotion. Я пытаюсь нарисовать линию (путь) на карте, используя координаты. Я могу запустить его в своем приложении, но я не вижу линий на карте (и никаких ошибок тоже).Как нарисовать линию пути на карте?

@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) 

ответ

1

Я не эксперт рубина, но для того, чтобы действительно увидеть вид наложения на карту вам нужно установить класс как делегата карты и внедрить метод протокола – 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; 
    } 
} 

Надеется, что это помогает!

+0

Как проблема заключается в том, чтобы превратить это в код рубинового (The varibles): (MKOverlayView *) MAPview: (MKMapView *) MAPview viewForOverlay: (идентификатор < MKOverlay >) наложение –

+0

@JonathanClark: Читайте об этом здесь: Http: // www.rubymotion.com/developer-center/guides/runtime/#_object_model –

 Смежные вопросы

  • Нет связанных вопросов^_^