ios LINESTRING解析

时间:2012-08-13 15:22:23

标签: ios xcode json parsing map

我一直在规划路线作为iOS谷歌地图的自定义。

如何在LINESTRING中解析传入的JSON?

我的LINESTRING:

"coordInfo": "LINESTRING (28.646751729297 40.9993029074749, 28.6470087874434 40.9995465119554, 28.6470087874434 40.9995465119554, 28.6474633603416 41.0000088561426)"
    },

1 个答案:

答案 0 :(得分:1)

从您发布的内容来看,objectForKey @“coordInfo”会为您提供一个包含括号中数字的字符串。您可以使用NSString方法componentsSeparatedByCharactersInSet来解析它:传递包含左右括号,逗号和空格的集合,以生成单个数字字符串的数组(以及单词“LINESTRING”作为数组中的第一个字符串) 。该数组还将包含一些空字符串,其中2个分隔符字符在一起(如逗号和空格),因此在将对象从数组中取出时,您必须对其进行测试。

你也可以像这样使用NSScanner:

NSString *toParse = @"LINESTRING (28.646751729297 40.9993029074749, 28.6470087874434 40.9995465119554, 28.6470087874434 40.9995465119554, 28.6474633603416 41.0000088561426)";
    NSScanner *scanner = [NSScanner scannerWithString:toParse];
    double num;
    while (! [scanner isAtEnd]) {
      [scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:nil];
      [scanner scanDouble:&num];
      // put numbers into an array here or use them somehow
      NSLog(@"%f",num);
    }