【问题标题】:Calculate distance between user's location and a fixed location计算用户位置与固定位置之间的距离
【发布时间】:2011-12-01 07:09:35
【问题描述】:

我正在从服务器接收多家餐厅的纬度/经度。我想计算每家餐厅与用户当前经纬度的距离。

【问题讨论】:

  • 你找到用户的当前位置了吗?或者,您有问题吗?
  • 感谢您回复我:我有用户当前位置,我的餐厅 lat long 是可变数组,如何访问这些 lat long 以查找距离。

标签: objective-c ios cocoa-touch geolocation latitude-longitude


【解决方案1】:

您可以使用 CLLocationdistanceFromLocation: 方法返回两个 CLLocation 之间的距离(以米为单位)。

CLLocation *currentLoc = /* Assume you have found it */;
CLLocation *restaurantLoc = [[CLLocation alloc] initWithLatitude:restaurantLat longitude:restaurantLng];
CLLocationDistance meters = [restaurantLoc distanceFromLocation:currentLoc];
// Go ahead with this

【讨论】:

  • 感谢您回复我:我有用户当前位置,我的餐厅 lat long 是可变数组,如何访问这些 lat long 以查找距离。
  • 你只有一个数组还是两个数组分别用于纬度和经度?
【解决方案2】:

一旦您有了地点列表(一种或另一种方式),您就可以使用 CoreLocation 获取到(或从)这些地点的距离,并使用 distanceFromLocation 进行计算:

【讨论】:

    【解决方案3】:

    您也可以使用 Google 提供的 API。 The Google Distance Matrix API

    它非常适合寻找距离。 希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      斯威夫特 3

      func calculateDistanceFromUser(location:CLLocation)->CLLocation!{
          if let userLocation = self.userUpdatedLocation{ //CLLocation
              let meters = location.distance(from: userLocation)
              return meters
          }
          return nil
      }
      

      【讨论】:

        猜你喜欢
        • 2015-01-13
        • 1970-01-01
        • 2017-04-20
        • 2022-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        相关资源
        最近更新 更多