nbsp;
// 实现在某个遍历某个索引处停止
if (idx == 0) {
NSLog(@"block停止");
*stop = YES;
}
}];
#pragma mark - for in遍历
// 不知道遍历的对象的情况
for (id obj in response.routes) {
NSLog(@"3%@",[obj name]);
}
// 已知遍历的对象的情况
for (MKRoute * _Nonnull obj in response.routes) {
NSLog(@"3%@",obj.name);
}
}];
}
#pragma mark - MKMapViewDelegate
// ③ 添加导航路线到地图
// 当添加一个覆盖层数据模型到地图上时, 地图会调用这个方法, 查找对应的覆盖层"视图"(渲染图层)
// 参数1(mapView):地图 参数2(overlay):覆盖层"数据模型" returns: 覆盖层视图
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay{
// 折线覆盖层
if ([overlay isKindOfClass:[MKPolyline class]]) {
// 创建折线渲染对象 (不同的覆盖层数据模型, 对应不同的覆盖层视图来显示)
MKPolylineRenderer *lineRenderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
lineRenderer.lineWidth = 6; // 设置线宽
lineRenderer.strokeColor = [UIColor redColor]; // 设置线颜色
return lineRenderer;
}
// 圆形覆盖层
if ([overlay isKindOfClass:[MKCircle class]]) {
MKCircleRenderer *circleRender = [[MKCircleRenderer alloc] initWithOverlay:overlay];
circleRender.fillColor = [UIColor blackColor]; // 设置填充颜色
circleRender.alpha = 0.6; // 设置透明色
return circleRender;
}
return nil;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
【Swift 语言】
import UIKit
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
// MARK: - 懒加载
lazy var geoCoder: CLGeocoder = {
return CLGeocoder()
}()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// MARK: - 地理编码
geoCoder.geocodeAddressString("广州") { (pls: [CLPlacemark]?, error) -> Void in
// 1. 拿到广