开发者

iPhone CoreLocation accuracy

I am trying to find the latitude and longitude position of rooms within my house.

Assuming that there is a clear signal, is this possible?. If I use the center of the room as a point, there is about 8-10 meters distance between each of the rooms. 开发者_JS百科

What kind of accuracy can I obtain? Are there any other methods? (I'm assuming that this is impractical?)

Also, I started looking at CoreLocation and outing the lat and long as labels but i dont quite understand why the coordinates keep changing? (the iPhone is stationary)


You won't get accuracy that good. The best you can expect is to within about 10m (30') of the correct location when you have a good GPS signal (clear view of the sky) and the signal is poor when indoors. The GPS accuracy spec is actually 100m but you usually can get 10m in practice if you can see many satellites (4-12). There is an accuracy table for GPS in Wikipedia. The iPhone does not have WAAS correction (which is very hard to get indoors anyway).

The coordinates keep changing because there are errors and noise on the GPS signals. The atmospheric delay changes with air density which varies with high altitude winds, clouds, moisture content, etc. The satellites are moving so you also get variable geometry which changes the calculated location. Satellites drop below the horizon and others popup which changes the set of satellites that you are calculating position from.

With a lot of work (software development) you could integrate data from the compass, accelerometers and gyros into an Inertial Navigation System that could measure movement like this. iPhone4 and iPad2 have all of those sensors built in.


Core location uses three different methods to determine the location. These are cell tower triangulation, Wi-Fi location data and GPS.

Depending on the value of CLLocationManager's desiredAccuracy parameter, it will use one or more of these three methods to determine the device's location.

The reason the location keeps changing is that the longer you wait, the more accurate (usually) your results get. So for example:

  1. It first determines a very rough location using cell tower triangulation
  2. Then it finds one or two wi-fi hotspots and gets a better fix on the location
  3. It then finds some more hotspots and therefore gets an even better fix
  4. Finally, if GPS is available, you get the best fix possible

Of course it takes a long time (and a lot of power) for GPS to become available. This is both due to the way GPS works, and because iOS turns GPS off to conserve power.

To answer your main question, if you have a GPS signal (i.e. you're outdoors), and there are at least a few wi-fi hotspots around you that are in Apple's database, you can potentially get a location fix to within 10 meters. Indoors, however, the best you can expect is around 100m.


You can use core motion / sensor aiding, but that could help you only with relative location rather than absolute. Those devices have a much better accuracy that cell/wifi/gps, especially for indoor navigation.


I have used my GPS indoors with some success, but most of the prior answers are right, the level of accuracy needed to map individual rooms is going to take quite a bit of work. And all of that is assuming your device can even get a GPS fix inside the house.

As far as your coordinates changing while not moving... that is all related to how good a fix you are getting from your device. While your device is checking for location updates, -startUpdatingLocation, you will get a lot of little corrections to location as it is constantly being updated. Hope that answers some of your questions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜