//去重处理
NSMutableArray<MATracePoint *> *locations = [NSMutableArray arrayWithArray:record.tracedLocations];
NSMutableArray * tempArr = [NSMutableArray array];
//BOOL isHave = false;
for (int i = 0; i < record.tracedLocations.count; i ++) {
NSMutableArray * arr = [NSMutableArray array];
[arr addObject:[NSString stringWithFormat:@"%d", i]];
for (int j = 0; j < record.tracedLocations.count; j ++) {
if (record.tracedLocations[i].latitude == record.tracedLocations[j].latitude && record.tracedLocations[i].longitude == record.tracedLocations[j].longitude && i != j) {
//isHave = true;
NSLog(@"record.tracedLocations[i].latitude = %f,%f,%d", record.tracedLocations[i].latitude,record.tracedLocations[j].latitude,j);
//[locations addObject:record.tracedLocations[i]];
[arr addObject:[NSString stringWithFormat:@"%d", j]];
}
}
[tempArr addObject:arr];
}
NSMutableArray * newArr = [NSMutableArray array];
for (int i = 0; i < tempArr.count; i ++) {
NSArray * arr = tempArr[i];
[newArr addObject:[arr sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
float number1 = ((NSString *)obj1).floatValue;
float number2 = ((NSString *)obj2).floatValue;
NSComparisonResult result = number1 > number2;
return result;
}]];
}
NSMutableDictionary * realDict = [NSMutableDictionary dictionary];
for (int i = 0; i < newArr.count; i ++) {
[realDict setObject:newArr[i] forKey:newArr[i]];
}
NSMutableArray * realArr = [[NSMutableArray alloc] init];
for (int i = 0; i < realDict.allKeys.count; i ++) {
[realArr addObject:((NSArray *)realDict.allKeys[i]).firstObject];
}
NSArray * desArr = [realArr sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
float number1 = ((NSString *)obj1).floatValue;
float number2 = ((NSString *)obj2).floatValue;
NSComparisonResult result = number1 > number2;
return result;
}];
[locations removeAllObjects];
for (int i = 0; i < desArr.count; i ++) {
[locations addObject:record.tracedLocations[((NSString *)desArr[i]).intValue]];
}