高德地图 将所有的大头针显示在屏幕上
#define kmapLevel 0.018
-(void)returnRegionInGpsPackArray:(NSArray*)locations isEnactment:(BOOL)enactment{
if (locations.count == 0) {
return;
}
if (locations.count == 1) {
CLLocation* item = [locations objectAtIndex:0];
if (item.coordinate.latitude == 90 || item.coordinate.latitude == -90) {
MACoordinateRegion newRegion;
newRegion.center.latitude = 0;
newRegion.center.longitude = item.coordinate.longitude;
newRegion.span.latitudeDelta = 120;
newRegion.span.longitudeDelta = 120;
[self.mapView setRegion:newRegion animated:YES];
[self.mapView regionThatFits:newRegion];
}else{
MACoordinateRegion newRegion;
newRegion.center = CLLocationCoordinate2DMake( item.coordinate.latitude, item.coordinate.longitude);
if(enactment){
newRegion.span.latitudeDelta = kmapLevel;
newRegion.span.longitudeDelta = kmapLevel;
}else {
newRegion.span = self.mapView.region.span;
}
[self.mapView setRegion:newRegion animated:YES];
[self.mapView regionThatFits:newRegion];
}
}else{
CGFloat xMin = 90.0;
CGFloat yMin = 180.0;
CGFloat xMax = -90.0;
CGFloat yMax = -180.0;
for (int i = 0; i < locations.count; i++)
{
CLLocation* item = [locations objectAtIndex:i];
if (item.coordinate.latitude == 0 || item.coordinate.longitude == 0) {
continue;
}
if (item.coordinate.latitude > xMax) {
xMax = item.coordinate.latitude;
}
if(item.coordinate.latitude < xMin){
xMin = item.coordinate.latitude;
}
if (item.coordinate.longitude > yMax) {
yMax = item.coordinate.longitude;
}
if(item.coordinate.longitude < yMin){
yMin = item.coordinate.longitude;
}
}
CGFloat xCenter = (xMax + xMin) / 2;
CGFloat yCenter = (yMax + yMin) / 2;
CLLocationDegrees laSpan = fabs(xMax - xMin)*1.12;
CLLocationDegrees loSpan = fabs(yMax - yMin)*1.12;
MACoordinateRegion newRegion;
newRegion = MACoordinateRegionMake(CLLocationCoordinate2DMake(xCenter,yCenter),MACoordinateSpanMake(laSpan,loSpan));
MACoordinateRegion region = [self.mapView regionThatFits:newRegion];
if (enactment) {
[self.mapView setRegion:region animated:YES];
}
}
}