我需要帮助。我正在尝试显示地图上的坐标。我正在使用MVC模型建立我的项目。但是我确实收到一条错误消息,提示我不能使用CLLocationDegrees,而必须使用CLLocatiocoordinates2D。请在下面查看我的代码。

编辑:更新了我的代码,所以现在可以工作了!感谢您的回答!

这是我保存信息的位置(如果您可以说的话?)

import Foundation
import MapKit

struct User {
let name: String
let position: CLLocationCoordinate2D

}


这是我的模型:

import LBTAComponents
import CoreLocation

class HomeDataSource: Datasource {

let users: [User] = {
    let position = CLLocationCoordinate2D(latitude: 37.33233141, longitude: -122.0312186)

    let sebbeUser = User(name: "Sebbe", position: position)



    return [sebbeUser]

}()



override func cellClasses() -> [DatasourceCell.Type] {
    return [UserCell.self]
}

override func item(_ indexPath: IndexPath) -> Any? {
    return users[indexPath.item]
}

override func numberOfItems(_ section: Int) -> Int {
    return users.count
}

}


这是我的单元格,您可以看到我已成功打印出名称。您可以在我发表评论的地方看到我的问题。

import LBTAComponents
import MapKit
import CoreLocation

class UserCell: DatasourceCell, CLLocationManagerDelegate, MKMapViewDelegate  {


let distanceSpan: Double = 500


 override var datasourceItem: Any? {
    didSet {
        guard let user = datasourceItem as? User else { return }
        nameLabel.text = user.name
        MapView.setCenter(user.position, animated: false)


        }


   }

let nameLabel: UILabel = {
    let label = UILabel()
    label.font = UIFont.boldSystemFont(ofSize: 14)
    return label

}()

let MapView: MKMapView = {
    let map = MKMapView()
    map.isZoomEnabled = false
    map.isScrollEnabled = false
    map.isUserInteractionEnabled = false
    return map

}()

最佳答案

您的经纬度应该是


  CLLocationCoordinate2D





  CLLocationDegrees




否则,您只能定义一个CLLocationCoordinate2D类型的变量。

喜欢

var location = CLLocationCoordinate2D()

location.coordinate.latitude = "-72.455412"
location.coordinate.longitude = "40.005165"


用同样的方法可以检索纬度长。只需更改模型变量即可。我想应该没问题。

其他事情在您的代码中看起来不错。

09-27 20:47