我有一个循环语句,它在数组中的mapView上显示我的注释。如何检查数组中的任何坐标是否为0,0,如果是,则删除/不绘制它们?
感谢。
代码:
CLLocationCoordinate2D maxCoord = {45.60250f,-122.39181f};
CLLocationCoordinate2D minCoord = {45.35697f,-123.12789f};
NSArray *callsArray = [xmlParser calls];
for (JointCAD *call in callsArray) {
NSString *callnumber = [call.callnumber stringByAppendingFormat:@". "];
NSString *callandnumber = [callnumber stringByAppendingString:call.currentCallType];
CLLocationCoordinate2D newCoord = { [call.latitude doubleValue], [call.longitude doubleValue]};
if ([call.longitude doubleValue] > maxCoord.longitude)
{
maxCoord.longitude = [call.longitude doubleValue];
}
if ([call.latitude doubleValue] > maxCoord.latitude)
{
maxCoord.latitude = [call.latitude doubleValue];
}
if ([call.longitude doubleValue] < minCoord.longitude)
{
minCoord.longitude = [call.longitude doubleValue];
}
if ([call.latitude doubleValue] < minCoord.latitude)
{
minCoord.latitude = [call.latitude doubleValue];
}
Annotation *ann = [[Annotation alloc] init];
ann.title = callandnumber;
ann.subtitle = [call location];
ann.coordinate = newCoord;
[mapView addAnnotation:ann];
}
MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}};
region.center.longitude = (minCoord.longitude + maxCoord.longitude) / 2.0;
region.center.latitude = (minCoord.latitude + maxCoord.latitude) / 2.0;
region.span.longitudeDelta = (maxCoord.longitude - minCoord.longitude) * 1.1;
region.span.latitudeDelta = (maxCoord.latitude - minCoord.latitude) * 1.1;
[mapView regionThatFits:region];
[self.mapView setRegion:region animated:YES];
[self setRefreshState:@"Finished"];
答案 0 :(得分:1)
嗯,为什么不在坐标等于0的情况下在continue
循环中添加for
?
在创建Annotation
对象之前,只需添加一个简单的
if(newCoord.latitude == 0 && newCoord.longitude == 0) continue;
continue
只是跳到循环的下一次迭代。