距离计算的误差是目标C.

时间:2012-10-06 01:13:42

标签: objective-c ios mongodb distance

我正试图在休斯顿Tx和旧金山(Apple总部)之间找到距离,并且得到了一些没有意义的疯狂结果。

我在德克萨斯州休斯顿和旧金山之间的距离是: 217.52603273007使用两个纬度/经度坐标之间的距离属性

然后,我使用以下代码尝试通过乘以3959

来获得距离
 NSNumber * distanceMiles = [NSNumber numberWithInteger:[[classified valueForKeyPath:@"distance"]intValue] * 3959];

    cell.distance.text = [NSString stringWithFormat:@"%@ miles", distanceMiles];

我得到了859103这没有任何意义!!!

我做错了什么?

加利福尼亚州旧金山和德克萨斯州休斯顿之间的距离(乘飞机)约为1651英里(2658公里)。

1 个答案:

答案 0 :(得分:1)

我不确定您输入的哪一部分可能有误,但我在linked的文档后面就是这样做的。

db.geo.insert({city:"Houston",coord:[95.3631, 29.7631]})
db.geo.ensureIndex({coord:'2d'})
db.runCommand({ geoNear : "geo", near : [122.0311, 37.3231], spherical : true, maxDistance : 1})
{
    "ns" : "so.geo",
    "near" : "1110001101101100111000000110111000010111001101100110",
    "results" : [
        {
            "dis" : 0.4081109209840864,
            "obj" : {
                "_id" : ObjectId("506f9a035a6639f6e19a3dea"),
                "city" : "Houston",
                "coord" : [
                    95.3631,
                    29.7631
                ]
            }
        }
    ]
       ...