带有纬度和经度的 CLLocation 对象

Posted

技术标签:

【中文标题】带有纬度和经度的 CLLocation 对象【英文标题】:CLLocation object in swift with latitude and longitude 【发布时间】:2017-11-12 09:50:56 【问题描述】:

我会尝试设置 CLLocation 对象的纬度和经度属性,但运行时出现此错误:

无法将 CLlocation 对象转换为 EMTrackPoint 对象

for element in objectsArray 
    let item = CLLocation(latitude: element.latitude, longitude: element.longitude) as! EMTrackPoint

    item.mElevation = element.ele
    item.mOrientation = element.orientation
    item.mDate = Date()
    if element.poiActive != ""
         GPXActive.add(element.poiActive.components(separatedBy: ","))
    
    GPXDanger.add(element.dangerActive.components(separatedBy: ","))
    item.mActivePOIs = GPXActive
    item.mActiveDangers = GPXDanger
    GPXPoints.add(item)

Objective C 中的EMTrackPoint 类:

@interface EMTrackPoint : CLLocation

@property (nonatomic, assign) double mElevation;
@property (nonatomic, retain) NSDate *mDate;
@property (nonatomic, retain) NSMutableArray *mActivePOIs;
@property (nonatomic, retain) NSMutableArray *mActiveDangers;
@property (nonatomic, assign) double mOrientation;
@property (nonatomic, assign) double mSpeed;

请帮忙。

【问题讨论】:

【参考方案1】:

每个EMTrackPoint 也是一个CLLocation 那么为什么不首先初始化一个EMTrackPoint 实例而不是进行类型转换:

for element in objectsArray 
    let item = EMTrackPoint(latitude: element.latitude, longitude: element.longitude)
    item.mElevation = element.ele
    item.mOrientation = element.orientation
    item.mDate = Date()
    ...

【讨论】:

以上是关于带有纬度和经度的 CLLocation 对象的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CLLocation 变量中提取经度和纬度?

如何使用 iPhone 的 CLLocation 类将纬度和经度分配给变量?

从浮点 lat long 创建的 CLLocation 显示更高的精度

CLLocation 如何实现 Equatable 协议?

CLLocation + Weather(Alamofire) 问题

在iOS6+中获取2个纬度和经度之间的距离