2011-08-16 44 views
0

我是iPhone開發者的新手。我正在設計一個項目,我已經給出了起點和終點地址。假設我在這些點之間的距離是100英里,我分成五個相等的20英里。那麼從起點開始距離20英里的距離如何呢?如何獲得一個點的經緯度?

+0

你必須存儲所有的點和之後,如果這相當於你的限制然後使用它的兩點精細距離beteen。因爲coreLocation框架給了距離過濾器的設施。 – priyanka

+0

@priyanka我會給出開始點和結束點,然後計算它們之間的距離。分裂之後。而且我想獲得經緯度總分的分數。 – iRam11

回答

1

此功能添加到您的類:

// position is a number between 0 and 1, where 0 gives the start position, and 1 gives the end position 
- (CLLocationCoordinate2D)pointBetweenStartPoint:(CLLocationCoordinate2D)startPoint endPoint:(CLLocationCoordinate2D)endPoint position:(float)position { 

    CLLocationDegrees latSpan = endPoint.latitude - startPoint.latitude; 
    CLLocationDegrees longSpan = endPoint.longitude - startPoint.longitude; 

    CLLocationCoordinate2D ret = CLLocationCoordinate2DMake(startPoint.latitude + latSpan*position, 
                  startPoint.longitude + longSpan*position); 

    return ret; 
} 

然後,您可以使用此方法是這樣的(假設你想要的距離分成5):

CLLocationCoordinate2D startPoint = CLLocationCoordinate2DMake(/* lat, long of start point */); 
CLLocationCoordinate2D endPoint = CLLocationCoordinate2DMake(/* lat, long of end point */); 

for (int i = 1; i < 5; i++) { 
    float position = i/5.0; 
    CLLocationCoordinate2D middlePosition = [self pointBetweenStartPoint:startPoint endPoint:endPoint position:position]; 
    NSLog("%f, %f", middlePosition.latitude, middlePosition.longitude); 
} 
+0

請注意,這隻適用於小距離,特別是如果您靠近極點。 – joerick

+0

CLLocationCoordinate2D middlePosition = [self pointBetweenStartPoint:startPoint endPoint:endPoint position:position]; – iRam11

+0

給出錯誤:無效的初始化程序 – iRam11

相關問題