2012-12-02 5 views
0

지도 또는지도를지도에 오버레이로 표시하는 방법을 보여주는 샘플 코드로 인터넷을 검색하려고했습니다. 자습서를 찾았지만 서클 및 다른 모양을 표시하기위한 것입니다. 포인트 트랙을 1 포인트 씩 표시하고 싶었습니다.iOS 6에서 도보 중 트랙 또는 경로를지도 중첩으로 표시하는 방법

아무도 나에게 좋은 자습서에 대한 링크를 제공하거나 누군가가 올바른 방향으로 나를 가리킬 수 있습니까?

도움을 주시면 감사하겠습니다.

건배

답변

1

MKPolyline을 사용해보세요. 경로를 따라 각 회전 지점의 좌표로 CLLocation 배열을 만듭니다. 해당 배열을 사용하여 MKPolyline 개체를 초기화합니다. 이렇게하면 지정한 각 점 사이에 실선이 그려집니다. 그런 다음 라인의 대시 패턴과 dashPhase를 조정할 수 있습니다. 포인트가 떨어져서 라인을 분리해야하는 경우입니다.

NSMutableArray *currentPoint; 
int count = [points count]; 
double lat, long; 

CLLocationCoordinate2D unitPath[count]; 
for (NSInteger index = 0; index < count; index++) 
{ 
    currentPoint = [points objectAtIndex:index]; 

    Lat = [[currentPoint objectAtIndex:ORDER_TARGLAT] doubleValue]; 
    Long = [[currentPoint objectAtIndex:ORDER_TARGLONG] doubleValue]; 
    CLLocation *pathPoint = [[CLLocation alloc] initWithLatitude:Lat longitude:Long]; 
    unitPath[index] = pathPoint.coordinate; 
} 

MKPolyline *routeLine = [MKPolyline polylineWithCoordinates:unitPath count:count]; 

routeLine.title = _title; 
routeLine.subtitle = [[NSString alloc] initWithFormat:@"%d",ID]; 
routeLine.strokeColor = [UIColor whiteColor]; 
routeLine.fillColor = [UIColor whiteColor]; 
NSNumber *lineGapSize = [NSNumber numberWithInteger:10]; 
routeLine.dashPattern = [NSArray arrayWithObjects:lineGapSize,lineGapSize,nil]; 
routeLine.dashPhase = lineDashPhase; 
routeLine.lineWidth = 4; 

[mapView addOverlay:routeLine] 

추신 :

내가 위도의 NSMutableArray를 시작, 긴 점은 점이라고 ORDER_TARGLAT 및 ORDER_TARGLONG은 배열의 항목 위치를 지정하는 열거 형의 일부였습니다. 코드에 맞게 바꾸십시오.

3

추천 방법은 Apple Breadcrumbs Demo App에 나와 있습니다.

1
MapView* mapView = [[[MapView alloc] initWithFrame: 
         CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)] autorelease]; 

[self.view addSubview:mapView]; 

Place* home = [[[Place alloc] init] autorelease]; 
home.name = @"Home"; 
home.description = @"Sweet home"; 
home.latitude = 29.860323999999990000; 
home.longitude =77.893305000000050000; 

Place* office = [[[Place alloc] init] autorelease]; 
office.name = @"Office"; 
office.description = @"Bad office"; 
office.latitude = 28.644251400000000000; 
office.longitude = 77.121190500000010000; 

[mapView showRouteFrom:home to:office]; 

사용 IOS에서이 일 7.0