我在Parse.com上有一个有“GeoPoint”列的课程(每个对象都有经度和纬度)。
我想检查是否有两个具有相同GeoPoint的对象。
我已经尝试了这个,但它不起作用(打印没有重复的对象):
PFQuery *query=[PFQuery queryWithClassName:@"Schools"];
query.limit=1000;
[self.myObjects addObjectsFromArray:[[query findObjects] mutableCopy]];
NSMutableArray *geoPoints=[NSMutableArray array];
for (PFObject *object in self.myObjects) {
[geoPoints addObject:[object objectForKey:@"GeoPoint"]];
}
NSCountedSet *cs=[[NSCountedSet alloc] initWithArray:geoPoints];
int num=1;
for (PFObject *object in cs) {
if ([cs countForObject:object]>1) {
NSLog(@"%@ %@",[[self.myObjects objectAtIndex:num] objectForKey:@"Name"], [[self.myObjects objectAtIndex:num] objectForKey:@"Address"]);
num++;
}
}
如何检查NSArray / Parse本身的重复项。
谢谢!
答案 0 :(得分:0)
我会采取不同的方法。当您放大和缩小地图时,远处的引脚将开始重叠。因此,您应该对此问题有一个通用的孤子(而不是编辑源数据)。
采用的方法称为地图引脚群集。每当更新地图缩放/引脚时,运行算法以确定哪些引脚靠近在一起并应进行分组。这导致地图上的一个引脚由多个原始引脚(注释)支持。选择引脚后,您可以显示所有注释的信息。
您可以使用以下许多实现:mkmapview pin clustering