我是新手,因此我可能会遗漏一些简单的东西或其他任何东西。
基本上我想在点到点之间绘制一条直线,在我的情况下,我有我的所有点,其中每条线应该以坐标数组绘制。然后我使用叠加方法绘制线条。所有这些都在我已定义和配置的MKMapView中(正确)。
所以这是我用来填充坐标数组并创建叠加/折线的代码:
CLLocationCoordinate2D coordinateArray[arrayOfLatitudes.count];
for (int i = 0; i < arrayOfLatitudes.count; i++) {
double tempLatitude = [[arrayOfLatitudes objectAtIndex:(i)] doubleValue];
double tempLongitude = [[arrayOfLongitudes objectAtIndex:(i)] doubleValue];
coordinateArray[i] = CLLocationCoordinate2DMake(tempLatitude, tempLongitude);
}
self.routeLine = [MKPolyline polylineWithCoordinates:coordinateArray count:arrayOfLatitudes.count];
[self.mapView setVisibleMapRect:[self.routeLine boundingMapRect]]; //If you want the route to be visible
[self.mapView addOverlay:self.routeLine];
这是我的ViewForOverlay方法,我将其配置为routeLine:
(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]])
{
MKPolylineView *mapOverlayView = [[MKPolylineView alloc] initWithPolyline:overlay];
//add autorelease if not using ARC
mapOverlayView.strokeColor = [UIColor redColor];
mapOverlayView.lineWidth = 3;
return mapOverlayView;
}
return nil;
}
我也在我的.h中有这些声明:
@property (nonatomic, retain) MKPolyline *routeLine;
@property (nonatomic, retain) MKPolylineView *routeLineView;
我不知道为什么我在MapView中看不到我的routeLine,因为我在另一个类中使用了确切的逻辑(事物的顺序),并且这些行显示没有问题。
我在这里缺少什么?请帮帮我
提前致谢
答案 0 :(得分:0)
我忘了提到,第一个代码块在一个名为&#34; waitForMe&#34;的方法中。 (无效)。我从viewDidLoad方法调用waitForMe。