2014-06-24 90 views
1

如何創建MKCoordinateRegion。如何創建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

+0

locationString的值是什麼?你在latitudeString和longitudeString變量中獲得了什麼? – Apurv

+0

37.33240869090869 || -122.0304678723966 || Apple Inc. –

回答

5

刪除類型轉換。使用下面的代碼。

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake([latitudeString doubleValue], [longtitudeString doubleValue]); 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 500, 500); 
+0

將一個NSString轉換爲一個int可以神奇地轉換它。 –

+0

Apurv在字符串上調用doubleValue並解析它並返回一個雙精度值 –

+0

感謝它爲我工作。 –

1

如果您存儲您的經度和緯度的字符串是這樣的:

NSString *latitudeString = @"12.2323"; 

你應該將它轉換爲浮動,就像這樣:

CGFloat latitude = [latitudeString floatValue]; 

在這之後,你這可以在你的

CLLocationCoordinate2DMake 

方法,它應該工作。問題在於,緯度只能在-90到90之間,經度在-180到180度之間,而你的數字比這個大得多。