Mis*_*sha 1 iphone gps objective-c cllocationmanager
我正在使用 CLLocation 机制来获取 iPhone 中的坐标。我从“定位我”的例子中获取了一个例子,并对其进行了一些扩展。但是我提出了准确性问题。
那么问题来了,有没有办法让iPhone使用GPS而不是三角天线来获取位置呢?
很高兴知道是否有办法提高使用天线时的精度,但到目前为止我得到的最好结果是 65 米。
您实际上不应该尝试控制哪些硬件为您获取位置。如果您想要更高的准确性,您可以检查 给您的准确性,CLLocation如果不是您想要的,则将其丢弃。
或者,您可以获取大量读数,并使用我编写的这段代码对它们进行平均!您将一组CLLocation对象传递给它,它会返回一个平均位置。我在我的一个应用程序中使用它,它提供了很高的准确性(如果您使用> 5个位置,通常在一米之内)。
- (CLLocation *) averageLocations: (NSArray *) loci
{
double tempLat=0,tempLong=0,tempAlt=0,tempAccH=0,tempAccV=0,tempCourse=0,tempSpeed=0,tempTime=0;
for (CLLocation *loc in loci)
{
tempLat += loc.coordinate.latitude;
tempLong += loc.coordinate.longitude;
tempAlt += loc.altitude;
tempAccH += loc.horizontalAccuracy;
tempAccV += loc.verticalAccuracy;
tempCourse += loc.course;
tempSpeed += loc.speed;
tempTime += loc.timestamp.timeIntervalSinceReferenceDate;
}
double ratio = (double) loci.count;
CLLocationCoordinate2D tempCoord = CLLocationCoordinate2DMake(tempLat/ratio, tempLong/ratio);
NSDate *tempDate = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:tempTime/ratio];
CLLocation *temp = [[CLLocation alloc] initWithCoordinate:tempCoord
altitude:tempAlt/ratio
horizontalAccuracy:tempAccH/ratio
verticalAccuracy:tempAccV/ratio
course:tempCourse/ratio
speed:tempSpeed/ratio
timestamp:tempDate];
return temp;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |