【问题标题】:Multiple Pins on Map using data from Plist使用 Plist 中的数据在地图上显示多个引脚
【发布时间】:2012-09-18 10:48:56
【问题描述】:

我正在尝试使用字典数组中的纬度和经度在地图上显示多个图钉。问题是它总是只显示 plist 中最后一个字典的 pin。

这是我的方法:

- (void)loadMapPins
{
MapAnnotation *annotation = [[MapAnnotation alloc] init];

for (int i=0; i<self.dataDictionary.count; i++){

    NSDictionary *dictionary = [NSDictionary dictionaryWithDictionary:[self.dataDictionary objectAtIndex:i]];

    double latitude = [[dictionary objectForKey:@"Latitude"] doubleValue];
    double longitude = [[dictionary objectForKey:@"Longitude"] doubleValue];

    CLLocationCoordinate2D coord = {.latitude =
        latitude, .longitude =  longitude};
    MKCoordinateRegion region = {coord};

    annotation.title = [dictionary objectForKey:@"Name"];
    annotation.subtitle = [dictionary objectForKey:@"Center Type"];
    annotation.coordinate = region.center;
    [mapView addAnnotation:annotation];
    }
}

我需要它通过循环并相应地在地图上放置图钉。感谢任何帮助/示例。

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案1】:

    我认为您想将注释创建移动到循环中。从外观上看,您只创建了一个,然后在循环中一遍又一遍地对其进行变异。当循环完成时,对注释变量的最后修改会反映您正在迭代的 self.dataDictionary 中的最后一项。

    下面的代码每次循环迭代都会创建一个新的注解对象。

    - (void)loadMapPins
    {
    
        for (int i=0; i<self.dataDictionary.count; i++){
    
        NSDictionary *dictionary = [NSDictionary dictionaryWithDictionary:[self.dataDictionary objectAtIndex:i]];
    
        double latitude = [[dictionary objectForKey:@"Latitude"] doubleValue];
        double longitude = [[dictionary objectForKey:@"Longitude"] doubleValue];
    
        CLLocationCoordinate2D coord = {.latitude =
            latitude, .longitude =  longitude};
        MKCoordinateRegion region = {coord};
    
        MapAnnotation *annotation = [[MapAnnotation alloc] init];
        annotation.title = [dictionary objectForKey:@"Name"];
        annotation.subtitle = [dictionary objectForKey:@"Center Type"];
        annotation.coordinate = region.center;
        [mapView addAnnotation:annotation];
        }
    }
    

    希望这会有所帮助,

    斯科特·H

    【讨论】:

    • 就是这样!你知道是否有一种方法可以重用注释,就像我们如何重用 tableView 中的单元格一样?
    猜你喜欢
    • 2013-06-09
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2020-11-22
    • 2012-08-22
    • 1970-01-01
    相关资源
    最近更新 更多