我需要帮助。我正在尝试显示地图上的坐标。我正在使用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"
用同样的方法可以检索纬度长。只需更改模型变量即可。我想应该没问题。
其他事情在您的代码中看起来不错。