Xin chào tất cả tôi đã làm việc trong một ứng dụng bản đồ, nơi tôi cần vẽ đường giữa hai vị trí, tôi cũng có tọa độ tuyến đường (sử dụng google api) và giữ nó trong một mảng, Bây giờ tất cả những gì tôi cần làm là tạo một đường dẫn từ mảng các điểm, sau đó tôi sẽ sử dụng đường dẫn với MKOverlayPathView để tạo các tuyến đường thực trên bản đồ. Ở đây vấn đề của tôi là làm thế nào để tạo ra một CGPathRef từ mảng tọa độ, Hoặc bất kỳ cách nào khác để làm các hoạt động tương tự
Cảm ơn trướcLàm thế nào để tạo CGPathRef từ Mảng các điểm
8
A
Trả lời
20
Giả sử các tọa độ được lưu trữ trong một NSArray như các đối tượng NSValue, bạn có thể làm như sau :
CGMutablePathRef path = CGPathCreateMutable();
if (points && points.count > 0) {
CGPoint p = [(NSValue *)[points objectAtIndex:0] CGPointValue];
CGPathMoveToPoint(path, nil, p.x, p.y);
for (int i = 1; i < points.count; i++) {
p = [(NSValue *)[points objectAtIndex:i] CGPointValue];
CGPathAddLineToPoint(path, nil, p.x, p.y);
}
}
// do stuff
CGPathRelease(path);
2
Một cách khác để tạo đường dẫn:
CGPoint points[5];
// TODO: Fill points array with values.
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddLines(path, NULL, points, 5);
// TODO: Do something useful with path.
CGPathCloseSubpath(path);
CGPathRelease(path);
Vâng cám ơn; Nhưng tiếc là mảng của tôi có các đối tượng của một lớp (có kinh độ và vĩ độ), vì vậy tôi đã tạo một mảng khác để chuyển đổi tọa độ thành điểm, vì vậy tôi thấy điều này có chút phức tạp. nhập mảng tọa độ của tôi và cố gắng tạo chế độ xem đa dòng. – iDroid