根据文档GMSMutablePath是:

GMSMutablePath is a dynamic (resizable) array of CLLocationCoordinate2D. [Google Documentation]


https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_mutable_path

我想颠倒路径坐标的顺序。通常,对于数组,我将使用:

[[array123 reverseObjectEnumerator] allObjects];


但是没有任何NSArray函数可以在其上运行,如果我尝试将其强制转换为NSArray或NSMutableArray,我只会收到危险信号。

如何反转GMSMutablePath中元素的顺序,或者如何正确将其强制转换为NSArray?

最佳答案

GMSMutablePath不继承自NSMutableArray,因此您不能将其转换为NSMutableArray
您可以手动执行此操作。如果要使用NSMutableArray进行调用,可以调用exchangeObjectAtIndex:withObjectAtIndex:,但是由于GMSMutablePath似乎没有为该方法提供等效项,因此我们可以更明确地做到这一点。

for (NSUInteger i1 = 0; i1 < [myPath count]/2; i1 ++)
{
   NSUInteger i2 =  [myPath count]-i1;
   CLLocationCoordinate2D *coord1 = [myPath coordinateAtIndex:i1];
   CLLocationCoordinate2D *coord2 = [myPath coordinateAtIndex:i2];
   [myPath replaceCoordinateAtIndex:i1 withCoordinate:coord2];
   [myPath replaceCoordinateAtIndex:i2 withCoordinate:coord1];
}

09-18 03:36