小编b4u*_*m11的帖子

在MKMapView中计算MKPolygon的面积

我只是不知道如何计算MKMapView上的区域.有谁解决了这个问题呢?

这是我的代码,但它返回的方式太多了:

func ringArea() -> Double{
    var area: Double = 0

    if templocations.count > 2 {
        var p1,p2:CLLocationCoordinate2D

        for var i = 0; i < templocations.count - 1; i++ {
            var loc = templocations[i] as CLLocation
            p1 = CLLocationCoordinate2D(latitude: loc.coordinate.latitude, longitude: loc.coordinate.longitude)

            loc = templocations[i+1] as CLLocation
            p2 = CLLocationCoordinate2D(latitude: loc.coordinate.latitude, longitude: loc.coordinate.longitude)

            var sinfunc: Float = (2 + sinf(Float(degreeToRadiant(p1.latitude))) + sinf(Float(degreeToRadiant(p2.latitude))))

            area += degreeToRadiant(p2.longitude - p1.longitude) * Double(sinfunc)
        }
        area = area * kEarthRadius * kEarthRadius / 2;
    } …
Run Code Online (Sandbox Code Playgroud)

mapkit mkmapview swift

2
推荐指数
3
解决办法
1903
查看次数

标签 统计

mapkit ×1

mkmapview ×1

swift ×1