2013-05-13 155 views
0

緯度:22.744812, 經度:75.892578在緯度/經度點之間更多地計算經度和緯度?

以上將被視爲我的中心點。

現在我需要確定從中心點1000米向外到每個NSWE拐角的經度和緯度點。所以我會有一箇中央長/緯,N,S,E和W長/緯。

所以我最終會有4個額外的經緯度。

我想要解決的是一個公式,最好是可以在標準計算器上完成以確定這4個NSWE點基於中心點。

回答

3

你可以使用MapKit爲:

- (CLLocationCoordinate2D *) calculateSquareCoordinates:(CLLocation*)center withRadius:(float)radius{ 

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(center.coordinate, radius*2, radius*2); 

    CLLocationCoordinate2D points[4]; 

    points[0] = CLLocationCoordinate2DMake(region.center.latitude - region.span.latitudeDelta/2, region.center.longitude - region.span.longitudeDelta/2); 
    points[1] = CLLocationCoordinate2DMake(region.center.latitude + region.span.latitudeDelta/2, region.center.longitude - region.span.longitudeDelta/2); 
    points[2] = CLLocationCoordinate2DMake(region.center.latitude + region.span.latitudeDelta/2, region.center.longitude + region.span.longitudeDelta/2); 
    points[3] = CLLocationCoordinate2DMake(region.center.latitude - region.span.latitudeDelta/2, region.center.longitude + region.span.longitudeDelta/2); 

    return points; 
} 

並調用

CLLocationCoordinate2D *fourPoints = [self calculateSquareCoordinates:center withRadius:1000]; 

您的代碼。

0

地球的平均半徑約6371000米。這意味着,

1度lattitude的相當於6371000 * PI /180米

(NB:PI = 3.14159 ...等)。然而,1度的經度取決於你的地位。在赤道上,一個經度對應於相同的以米爲單位的距離,與1度的緯度。然而,在北極和南極,所有的經度值是相同的點(即極點本身),因此極點的1度經度爲零米。爲經度的公式是

1度經度的相當於637100 * PI/180 * COS(Lattitude)

其中COS是三角餘弦函數。如果您進行這些轉換,那麼您可以在標準計算器上進行計算。但是,要注意的是,這些近似值在短距離(例如少於幾百公里)內運行良好,但是在長距離(例如數千公里)時,它們變得越來越不準確。