我有一本从 plist 加载的字典。我遍历了我的数组,它总共包含 4000 个经纬度。
我使用 GCD 在后台线程上处理 for 循环(因为它在处理时锁定 UI)并在此任务中添加覆盖,如下所示。
一切正常,除了将所有叠加层添加到地图仅在整个数组循环完成后出现。如果我想遍历数组并一次将 x1 覆盖添加到视图中,而不是等待总数处理,我会这样做。
-(void)loadOverlays{
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Add code here to do background processing
int d;
for (d = 0; d < [[tempDict allValues]count]; d++) {
//Get values from dic
values = [tempDict allValues];
id aValue = [values objectAtIndex:d];
latCircle = [aValue objectAtIndex:1];
lngCircle = [aValue objectAtIndex:2];
geoFCenter = CLLocationCoordinate2DMake([latCircle floatValue], [lngCircle floatValue]);
geoFRadius = 10000.0; // 10,000 metres
//Add Zone circle
circle = [MKCircle circleWithCenterCoordinate:geoFCenter radius:geoFRadius];
[circle setTitle:@"2"];
[self.dragMap addOverlay:circle];
}
});
}