Google Maps Path Encoding

2019-06-14 05:20发布

I'm trying to highlight an area between two polylines like this:

enter image description here

I have calculated the left and right polylines. To highlight the inside I am using a polygon that has points of the left side plus the right side in reverse (to properly close the polygon). The GMSMutablePath has no function to reverse the array so I did this:

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

Neither is there anyway to combine the GMSMutable Arrays. So I converted them to an encoded String and the concatenated them:

    NSString *pathLeftSt = pathLeft.encodedPath;
    NSString *pathRighSt = reversedRight.encodedPath;

    NSString *spaceASCII = @"32";


    NSString *combinedPaths = [NSString stringWithFormat:@"%@%@%@", pathLeftSt , spaceASCII, pathRighSt];

   fullRectangle = [GMSMutablePath pathFromEncodedPath:combinedPaths];

My path generated looks like this (the left and right paths are correct, but the highlighting is way off: enter image description here

I'm fairly certain my encoding is off. I place "32" between the encoded strings for an ASCII space. The instructions for the encoding algorithm are here: https://developers.google.com/maps/documentation/utilities/polylinealgorithm

Do I need to add something else to properly combine these two strings and place them back into a GMSMutablePath?

0条回答
登录 后发表回答