簡體   English   中英

如何將位置的坐標與用戶的當前坐標進行比較

[英]How to compare the coordinates of a location to the current coords of a user

我正在將位置的坐標與用戶的當前坐標進行比較。 距離輸出像:6056609.511004132946254686

我不確定這是什么度量。我希望最終的測量距離以km為單位。

 // location of deal
CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];

// user's current location
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];

對文檔的最粗略的閱讀將使這一點變得清晰。 如果您打開快速幫助檢查器(在Xcode 4.5中,按Command + Option + 2或從“查看”菜單的“實用工具”部分中選擇“顯示快速幫助檢查器”),然后在代碼中單擊distanceFromLocation ,它在那里為您提供了有關該方法的文檔,從而使您可以清楚地看到它是以米為單位的。 或者,在將鼠標移到代碼中的distanceFromLocation方法上時,按住選項鍵,然后單擊(仍然按住選項鍵的同時),您將看到一個在線幫助彈出窗口。

在這里發布問題之前,您確實應該查看Apple文檔。

以米為單位,來自Apple文檔:

CLLocationDistance

距現有位置的距離(以米為單位)。

typedef double CLLocationDistance

可用性在iOS 2.0和更高版本中可用。 在CLLocation.h中聲明

Apple文檔中所述,distanceFromLocation函數的返回值以米為單位。 因此,您要做的是將米轉換為km;)

CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

//Compute distance in meters
CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];

//Convert meters to km
double km = distanceToDeal/1000;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM