- (void)viewDidLoad
{
[super viewDidLoad
];
self
.mapView
.delegate
= self
;
[self
.mapView setCenterCoordinate
:CLLocationCoordinate2DMake(40.161613, 116.672968) animated
:YES
];
MKCoordinateSpan span
= MKCoordinateSpanMake(self
.mapView
.region
.span
.latitudeDelta
* 0.01, self
.mapView
.region
.span
.longitudeDelta
* 0.01);
[self
.mapView setRegion
:MKCoordinateRegionMake(CLLocationCoordinate2DMake(40.161613, 116.672968), span
) animated
:YES
];
[self addPolygonOverlay
];
[self addCircleOverlay
];
[self pathOverLay
];
}
- (void)addPolygonOverlay
{
const int allNum
= 12;
CLLocationCoordinate2D ploycoords
[allNum
] = {
CLLocationCoordinate2DMake(40.2283333f, 116.5283333f),
CLLocationCoordinate2DMake(40.2366667f, 116.6133333f),
CLLocationCoordinate2DMake(40.1533333f, 116.6100000f),
CLLocationCoordinate2DMake(40.0983333f, 116.6783333f),
CLLocationCoordinate2DMake(40.0616667f, 116.6850000f),
CLLocationCoordinate2DMake(39.9966667f, 116.6366667f),
CLLocationCoordinate2DMake(39.9166667f, 116.6666667f),
CLLocationCoordinate2DMake(39.9083333f, 116.5816667f),
CLLocationCoordinate2DMake(39.9916667f, 116.5850000f),
CLLocationCoordinate2DMake(40.0466667f, 116.5166667f),
CLLocationCoordinate2DMake(40.0800000f, 116.5116667f),
CLLocationCoordinate2DMake(40.1483333f, 116.5583333f)
};
MKPolygon
*polygonOverlay
= [MKPolygon polygonWithCoordinates
:ploycoords count
:allNum
];
[self
.mapView addOverlay
:polygonOverlay
];
}
- (void)addCircleOverlay
{
MKCircle
*circleOverlay
= [MKCircle circleWithCenterCoordinate
:CLLocationCoordinate2DMake(39.8166667f, 116.5666667f) radius
:10000.0f];
[self
.mapView addOverlay
:circleOverlay
];
}
- (void)pathOverLay
{
CLLocationCoordinate2D pathCoords
[6] = {
CLLocationCoordinate2DMake(40.2366667f, 116.6850000f),
CLLocationCoordinate2DMake(40.2366667f, 116.7250000f),
CLLocationCoordinate2DMake(40.1766667f, 116.8850000f),
CLLocationCoordinate2DMake(40.0366667f, 116.7850000f),
CLLocationCoordinate2DMake(39.9366667f, 116.8850000f),
CLLocationCoordinate2DMake(39.8366667f, 116.9850000f)
};
MKPolyline
*pathOverlay
= [MKPolyline polylineWithCoordinates
:pathCoords count
:6];
[self
.mapView addOverlay
:pathOverlay
];
}
#pragma mark
- MKMapViewDelegate
- (MKOverlayRenderer
*)mapView
:(MKMapView
*)mapView rendererForOverlay
:(id
<MKOverlay>)overlay
{
MKPolygonRenderer
*poly
= nil
;
if ([overlay isKindOfClass
:[MKPolygon
class]] == YES
) {
poly
= [[MKPolygonRenderer alloc
] initWithOverlay
:overlay
];
poly
.lineWidth
= 1.0;
CGFloat alphaFloat
= 0.2;
poly
.strokeColor
= [[UIColor redColor
] colorWithAlphaComponent
:1.0];
poly
.fillColor
= [[UIColor greenColor
] colorWithAlphaComponent
:alphaFloat
];
}
else if ([overlay isKindOfClass
:[MKCircle
class]] == YES
) {
MKCircleRenderer
*circle
= [[MKCircleRenderer alloc
] initWithOverlay
:overlay
];
circle
.lineWidth
= 1.0;
CGFloat alphaFloat
= 0.2;
circle
.strokeColor
= [[UIColor redColor
] colorWithAlphaComponent
:1.0];
circle
.fillColor
= [[UIColor greenColor
] colorWithAlphaComponent
:alphaFloat
];
return circle
;
}
else if ([overlay isKindOfClass
:[MKPolyline
class]] == YES
) {
MKPolylineRenderer
*line
= [[MKPolylineRenderer alloc
] initWithOverlay
:overlay
];
line
.lineWidth
= 2;
line
.strokeColor
= [UIColor orangeColor
];
return line
;
}
return poly
;
}