如何findGoogle Maps Path的长度

我正在使用适用于iOS的Google Maps SDK,并使用GMSMutablePath对象创build了一个路由。 在API文档中 ,它说它有一个名为lengthOfKind的函数来计算path的长度,但是它需要一个GMSLengthKindtypes的对象。

 (CLLocationDistance) lengthOfKind: (GMSLengthKind) kind Returns the length of the path, according to kind. See GMSLengthKind. 

然而,在文档中没有提到GMSLengthKind ,我似乎无法find任何对input有意义的东西。 有谁知道inout应该是什么,或者如果有另一种方法来计算path的长度?

这是我咨询的链接

GMSLengthKind在GMSPath.h中定义:

 /** * kGMSEquatorProjectedMeter may be useful when specifying lengths for segment in "projected" units. * The value of kGMSEquatorProjectedMeter, 1/(pi * EarthRadius), represents the length of one meter * at the equator in projected units. For example to specify a projected length that corresponds * to 100km at the equator use 100000 * kGMSEquatorProjectedMeter. * See [GMSPath segmentsForLength:kind:], [GMSPath lengthOfKind:] and kGMSLengthProjected. */ extern const double kGMSEquatorProjectedMeter; /** * GMSLengthKind indicates the type of a length value, which can be geodesic (in meters), rhumb * length (in meters) and projected length (in GMSMapPoint units). */ typedef enum { /* * Geodesic length, in meters, along geodesic segments. May be useful, for example, to specify * lengths along the the trajectory of airplanes or ships. */ kGMSLengthGeodesic, /* * Rhumb length, in meters, along rhumb (straight line) segments. May be useful, for example, to * draw a scale bar on a map. The visual size of a segment of a given length depens on the * latitude. */ kGMSLengthRhumb, /* * Length in projected space, along rhumb segments. Projected length uses the same units as * GMSMapPoint - the Earth equator circumference has length 2. It is possible to specify projected * length in units corresponding to 1 meter at the equator by multiplying with * kGMSEquatorProjectedMeter, equal to 1/(pi * EarthRadius). * * Projected length may be useful, for example, to specify segments with the same visual length * regardless of latitude. */ kGMSLengthProjected } GMSLengthKind; 

//坐标是一个坐标数组

GMSMutablePath path = [[GMSMutablePath alloc] init];

 for (NSString * row in coord) { NSArray *array = [row componentsSeparatedByString:@"|"]; double lat = [[array objectAtIndex: 0] doubleValue]; double lon = [[array objectAtIndex: 1] doubleValue]; [path addCoordinate:CLLocationCoordinate2DMake(lat, lon)]; } // Geodesic length, in meters, along geodesic segments NSLog(@"Lenght Length Projected=%f",[path lengthOfKind:kGMSLengthProjected]); // Rhumb length, in meters, along rhumb (straight line) segments NSLog(@"Lenght Length Rhumb=%f",[path lengthOfKind:kGMSLengthRhumb]); // Length in projected space, along rhumb segments. NSLog(@"Lenght Length Geodesic=%f",[path lengthOfKind:kGMSLengthGeodesic]);