我一直在尝试计算MKPolygon的面积,我查阅了一些链接并进行了相应的调整。但是我似乎无法得到正确的平方米计算结果。如果需要,我可以提供更多信息。
以下是我的代码:
func polygonArea() -> Double{
var area: Double = 0
var kEarthRadius:Double = 6378137
var coord: NSArray = self.coordinates()
if (coord.count > 2){
var p1, p2, p3 : CLLocationCoordinate2D
var lowerIndex, middleIndex, upperIndex: Int
for var i = 0; i < points.count - 1; i++ {
if (i == (points.count - 2)){
lowerIndex = points.count - 2
middleIndex = points.count - 1
upperIndex = 0
}else if (i == points.count - 1){
lowerIndex = points.count - 1
middleIndex = 0
upperIndex = 1;
}else{
lowerIndex = i
middleIndex = i + 1
upperIndex = i + 2
}
p1 = points[lowerIndex]
p2 = points[middleIndex]
p3 = points[upperIndex]
area += degreesToRadians(p2.longitude - p1.longitude) * (2 + sin(degreesToRadians(p1.latitude)) + sin(degreesToRadians(p2.latitude)))
}
area = area * kEarthRadius * kEarthRadius / 2
}
return area
measureLabel.text = "\(area)"
}
我特别关注了这个链接:MKPolygon 面积计算
polygonArea()
目前返回什么? - ndmeirireturn area
后面的代码将永远不会被执行。你应该把它移到 return 语句之前。 - ndmeiri