2

如何创建 MKCoordinateRegion 。

    NSString *latitudeString =  [locationString substringToIndex:startRange.location];
    NSString *longtitudeString = [locationString substringWithRange:NSMakeRange(startRange.location+2,((endRange.location-1)-(startRange.location+2)))];
    CLLocationCoordinate2D coord = CLLocationCoordinate2DMake((int)latitudeString, (int)longtitudeString);

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 500, 500);`

我收到错误“无效区域中心:+392128672.00000000,+392128704.00000000 跨度:+0.00448287,-0.01195557

4

2 回答 2

5

删除类型转换。使用下面的代码。

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake([latitudeString doubleValue], [longtitudeString doubleValue]);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 500, 500);
于 2014-06-24T09:22:50.903 回答
1

如果您将纬度和经度存储在这样的字符串中:

NSString *latitudeString = @"12.2323";

您应该将其转换为浮点数,如下所示:

CGFloat latitude = [latitudeString floatValue];

之后,你可以在你的

CLLocationCoordinate2DMake

方法,应该可以。问题出在,纬度只能在-90到90之间,经度只能在-180到180(度)之间,而你的数字远不止这些。

于 2014-06-24T09:56:50.403 回答