Advertise Mobile SDKs Books Events Forum News Social Networking Support Us
Follow @iphonedevsdk on Twitter

Mockup & CodeGen, iPhone & iPad
($9.99)

Make your own iPhone apps
and run them live!
(free)

Manu
($0.99)

Want your application or service advertised on iPhone Dev SDK?

Go Back   iPhone Dev SDK Forum > iPhone SDK Development Forums > iPhone SDK Development

Reply
 
LinkBack Thread Tools Display Modes
Old 09-01-2008, 10:07 PM   #1 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default CLLocationManager - not updated frequently

Hi,

I am successfully using the CLLocationManager (and associated objects) to interact with the GPS. It seems to work "ok", but the main problem I am having is that it does not seem to be updating properly.

For example:

I get GPS coordinates at one location. Then I walk about 1 block down and the coordinates remain the same (yes I am looking after the 3rd decimal point)

Interesting enough, when I use the iphone maps app, it seems to update more frequently and accurately... Any suggestions?

Below is my code (keep in mind I modified most of it from various sources, including the SDK examples).




// Called when the location is updated
- (void)locationManagerCLLocationManager *)manager
didUpdateToLocationCLLocation *)newLocation
fromLocationCLLocation *)oldLocation
{


NSMutableString *lastTimeUpdated = [[[NSMutableString alloc] init] autorelease];
NSMutableString *currentLatitude = [[[NSMutableString alloc] init] autorelease];
NSMutableString *currentLatitudeDirection = [[[NSMutableString alloc] init] autorelease];

NSMutableString *currentLongitude = [[[NSMutableString alloc] init] autorelease];
NSMutableString *currentLongitudeDirection = [[[NSMutableString alloc] init] autorelease];

// Timestamp
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[lastTimeUpdated appendFormat:@"%@\n\n", [dateFormatter stringFromDate:newLocation.timestamp]];

// Horizontal coordinates
if (signbit(newLocation.horizontalAccuracy))
{
// Negative accuracy means an invalid or unavailable measurement
[currentLatitude appendString:LocStr(@"LatLongUnavailable")];
}
else
{
// CoreLocation returns positive for North & East, negative for South & West

//currentLatitude = [NSString stringWithFormat:@"%lf",fabs(newLocation.coordinat e.latitude)];
currentLatitude = [NSString stringWithFormat:@"%lf",newLocation.coordinate.lat itude];
currentLatitudeDirection = signbit(newLocation.coordinate.latitude) ? LocStr(@"South") : LocStr(@"North");

currentLongitude = [NSString stringWithFormat:@"%lf",fabs(newLocation.coordinat e.longitude)];
currentLongitude = [NSString stringWithFormat:@"%lf",newLocation.coordinate.lon gitude];

currentLongitudeDirection = signbit(newLocation.coordinate.latitude) ? LocStr(@"West") : LocStr(@"East");


// [update appendString:@"\n"];
//[update appendFormat:LocStr(@"MeterAccuracyFormat"), newLocation.horizontalAccuracy];
}

// Send the update to our delegate
[self.delegate newLocationUpdate: lastTimeUpdated: currentLatitude: currentLatitudeDirection: currentLongitude: currentLongitudeDirection];
}



-(void)newLocationUpdate: (NSString *)lastTimeUpdated: (NSString *) currentLatitude: (NSString *) currentLatitudeDirection: (NSString *) currentLongitudeNSString *) currentLongitudeDirection {


[activityIndicator startAnimating];

myCurrentLatitude= currentLatitude;
myCurrentLongitude = currentLongitude;


[[MyCLController sharedInstance].locationManager stopUpdatingLocation];


}
varchar is offline   Reply With Quote
Old 09-02-2008, 11:28 AM   #2 (permalink)
Registered Member
 
Join Date: Apr 2008
Posts: 159
Default

Umm....did you notice this one:

Code:
[[MyCLController sharedInstance].locationManager stopUpdatingLocation];
uprise78 is offline   Reply With Quote
Old 09-02-2008, 11:32 AM   #3 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

I actually removed it (sorry pasted it after I removed it)... but still same problem..
varchar is offline   Reply With Quote
Old 09-02-2008, 11:36 AM   #4 (permalink)
Registered Member
 
Join Date: Apr 2008
Posts: 159
Default

You didn't post the piece of code that actually matters...where you started up the location manager. You need to check the docs and set the desiredAccuracy to a low enough number to get updates as small as one block. And when you post code post it inside [ c o d e] [/ c o d e] brackets (without the spaces)
uprise78 is offline   Reply With Quote
Old 09-02-2008, 11:43 AM   #5 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

Thanks.

I will look into that... that makes sense...

(sorry about the code brackets.... I will do so from now on)
varchar is offline   Reply With Quote
Old 09-02-2008, 12:40 PM   #6 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

Here is my code.

It doesn't seem to work as I expect. I need GPS to update down to the 1 meter level (seems that is closest accuracy)... I think below is some syntax problems...

Any help would be appreciated...

Code:
	
	CLLocationDistance locationDistance;
	
	locationDistance = 1.0;

	[[MyCLController sharedInstance].locationManager distanceFilter:locationDistance];
	[[MyCLController sharedInstance].locationManager desiredAccuracy: kCLLocationAccuracyBest];
	
	[[MyCLController sharedInstance].locationManager startUpdatingLocation];
varchar is offline   Reply With Quote
Old 09-02-2008, 04:46 PM   #7 (permalink)
New Member
 
Join Date: May 2008
Posts: 49
Default

I don't think the GPS is accurate down to the one meter level.

I did a Google search to check feasibility of a plan I have for GPS use, and it looks like it's going to be accurate within about 20-30 feet which is about 6-10 meters.

Sometimes it's much worse, depending on whether you are indoors or outdoors, etc.

Unfortunately I only have a iPhone first generation so I can't check the GPS myself :-(.

D
David H Dennis is offline   Reply With Quote
Old 09-02-2008, 05:08 PM   #8 (permalink)
New Member
 
Join Date: Aug 2008
Location: Austin, TX
Posts: 239
Default

GPS does not work indoors...it requires line of sight to the sky. It's accurate down to 1.2 meters though. As to your problem remove the distance filter. There appears to be a bug that keeps the system from sending you updates if you use tihs.
__________________
iNeedStuff shopping assistant - get in, get out, get on with your life
ayasin is offline   Reply With Quote
Old 09-22-2008, 05:12 PM   #9 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

I am having such a weird problem...

Apparently, the GPS information received from my code (which is almost exact as Apple's SDK examples) is not as accurate as when using the Maps app on the iPhone.

Interesting enough, if I go into maps app, locate myself, and then go into my app, I get accurate GPS coordinates.

BUT many times, if just going into my app and getting coordinates, they are not accurate at all.

Anyone have this experience too? IS there a way to force the GPS to get more accurate coordinates (yes I know of the distancefilter and desiredAccuracy, but still no dice... )

This is bugging me out.....

see code below... quite simple....



Code:
// Called when the location is updated
- (void)locationManagerCLLocationManager *)manager
didUpdateToLocationCLLocation *)newLocation
fromLocationCLLocation *)oldLocation
{


NSMutableString *lastTimeUpdated = [[[NSMutableString alloc] init] autorelease];
NSMutableString *currentLatitude = [[[NSMutableString alloc] init] autorelease];

NSMutableString *currentLongitude = [[[NSMutableString alloc] init] autorelease];

// Timestamp
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[lastTimeUpdated appendFormat:@"%@\n\n", [dateFormatter stringFromDate:newLocation.timestamp]];

// Horizontal coordinates
if (signbit(newLocation.horizontalAccuracy))
{
// Negative accuracy means an invalid or unavailable measurement
[currentLatitude appendString:LocStr(@"LatLongUnavailable")];
}
else
{
// CoreLocation returns positive for North & East, negative for South & West

currentLatitude = [NSString stringWithFormat:@"%lf",newLocation.coordinate.lat itude];

currentLongitude = [NSString stringWithFormat:@"%lf",newLocation.coordinate.longitude];


}


lblMyCurrentLatitude.Text = currentLatitude;
lblMyCurrentLongitude.Text = currentLongitude;
}
Thanks for any help you can provide....
varchar is offline   Reply With Quote
Old 10-16-2008, 04:46 AM   #10 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

Hi,

i am having the same problems. I used the location example and modified some states.

If i debug the location detection there are some notes:
- In the first fired event i got the last cached geodata back (not the new ones)
- In the follow updates i got old values too (no errors, only the old value) - any ideas?

I read the the accuracy property is buggy? What is the default accuracy?

Ralf
rhuettl is offline   Reply With Quote
Old 10-16-2008, 10:29 AM   #11 (permalink)
Registered Member
 
Join Date: Jul 2008
Location: Kiev
Posts: 75
Default

Quote:
Originally Posted by rhuettl View Post
Hi,
i am having the same problems. I used the location example and modified some states.

If i debug the location detection there are some notes:
- In the first fired event i got the last cached geodata back (not the new ones)
- In the follow updates i got old values too (no errors, only the old value) - any ideas?

I read the the accuracy property is buggy? What is the default accuracy?
Ralf
Hi.

having the same problem. did u suceeded to solve it?

coordinates are the same in 50% though i moved about 300 meters (filters is set to best and none)
pashik is offline   Reply With Quote
Old 10-16-2008, 04:43 PM   #12 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

Solved it:

But first to say that all the apple examples are not working correct for a practical use (look at the maps app - never they used the apple example code *g*).

Code:
- (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation
{
	if ( !isStopped )
	{
		timesFired++;
		
		if ( signbit(newLocation.horizontalAccuracy) ) // Fall negative Genauigkeit, dann nicht ermittelbar!
		{
			[manager stopUpdatingLocation];
			isStopped = YES;
			[self.delegate gpsLocationUpdatingError:(@"ERROR_IPHONE_LOCATION_UNAVAILABLE")];
			return;
		} 
		
		if ( newLocation != nil )
		{
			
			if ( (currLocation == nil || currLocation.horizontalAccuracy >= newLocation.horizontalAccuracy) && abs(newLocation.timestamp.timeIntervalSinceNow) < 10 )    
			{
				if (currLocation != nil)
					[currLocation release];
				
				currLocation = [newLocation retain];
			}
		}
		
		if ( currLocation.horizontalAccuracy <= GOODDISTANCE || (timesFired >= MAXREPEATS && currLocation.horizontalAccuracy <= BADDISTANCE) )
		{
			isStopped = YES;
			[manager stopUpdatingLocation];
			
			[self.delegate gpsLocationUpdated:[GLatLng createWithCCLocation:currLocation]];
			return;
		}
		
		if ( timesFired >= MAXREPEATS )
		{
			isStopped = YES;
			[manager stopUpdatingLocation];
			
			[self.delegate gpsLocationUpdatingError:(@"ERROR_IPHONE_LOCATION_INACCURATE")];
			return;
		}
	}
	
}
Only a short exp:
- With every GPS update i update the current location if it is more accurate then the last one and if it is new (< 10 seconds). If you dont test for the time interval you will get the latest (cached) location back!
- After a maximum of repeats (in my case five) i decide if the accuracy is ok (best case <= 10 meters, bad case <= 100 meters) and if not i call the error delegate (then i use the last known location of the current app user - NOT the last cached because the last cached is device dependend).

After some device tests that seems to work for me- If you have some other ideas to do it more accurate let me know :-)

Ralf
rhuettl is offline   Reply With Quote
Old 10-17-2008, 12:11 AM   #13 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

I have solved this problem.

Basically the way to solve is to ignore the locationupdate if it is not very accurate or it is to old.

Below is the code... It works like a charm.... I get amazing accuracy... I am so happy!

Code:

// Called when the location is updated
- (void)locationManager:(CLLocationManager *)manager
	didUpdateToLocation:(CLLocation *)newLocation
		   fromLocation:(CLLocation *)oldLocation
{
	
	NSDate* newLocationeventDate = newLocation.timestamp;
	NSTimeInterval howRecentNewLocation = [newLocationeventDate timeIntervalSinceNow];
	
	// Needed to filter cached and too old locations
	if ((!currentLocation || currentLocation.horizontalAccuracy > newLocation.horizontalAccuracy) &&
		(howRecentNewLocation < -0.0 && howRecentNewLocation > -10.0)) {
		if (currentLocation)
			[currentLocation release];
		
		currentLocation = [newLocation retain];
	}
	
}

In addition to the above, I use a timer which checks if currentLocation has latest data, if so, then it takes the coordinates. The timer also checks how many times the GPS was called and if it has been called more than the preset amount of time, then I give error to user (meaning the user is not in a good GPS spot [maybe underground?] )


Here is the code:

Code:

-(void)setLocation:(NSTimer *)timer {
	timerFires++;
	//NSLog(@"timerFires=%d",timerFires);
	
	if ((currentLocation && currentLocation.horizontalAccuracy < accuracyThreshold) || timerFires >= maxFires) {
		[timer invalidate];
		[locationManager stopUpdatingLocation];
		
		timerFires = 0;
		
		// Catch here in case currenLocation is not set..
		if (!currentLocation) {
			// Give error to user
		}
		
		myCurrentLatitude = [NSString stringWithFormat:@"%lf",currentLocation.coordinate.latitude];	
		myCurrentLongitude = [NSString stringWithFormat:@"%lf",currentLocation.coordinate.longitude];
		
		// Now lets go do the process we want with the gps info
                [self LogGPSStuff];
		
		return;
		
	} 
	else {
		return;
	}
}
I hope the above helps you.... It took me days and days to get this right.... and I am very happy with it... but I am sure it can be improved....
varchar is offline   Reply With Quote
Old 10-17-2008, 03:44 AM   #14 (permalink)
Registered Member
 
Join Date: Oct 2008
Posts: 193
Default

awesome! thanks! I was wondering why my gps data wasn't updating as frequently as it should have... I thought Apple was just 'dumbing down' the GPS portions of the SDK they gave us so people would always use Google Maps.... It'd be awesome if filtering out old location data makes me as accurate as google... Here's hoping it works!
Ed99 is offline   Reply With Quote
Old 10-17-2008, 06:13 PM   #15 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

Yeah, I was thinking the same thing... I was happy that this code worked! Good luck with it! Let me know if I can assist with other things? I learned so much about the GPS....

Btw, you would know how to do that "circle" bounce which google does?
varchar is offline   Reply With Quote
Old 10-18-2008, 09:53 PM   #16 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

Ah, well done :-)

Location detection is not a ease and the apple examles are all not the best.

By the way i saw another problem in my (and in your) solution. The location update is not continuous happening (i tested this scenario in Edge, WIFI is working fine). Sometimes there is only a three times update and then it stops to work/update (before your timer max count is reached - gps is not more sending updates to the delegate then and now?). Another thing is that google maps is getting a accurate distance/location faster than we get - i am not sure if they really use the locationmanager or if they implement own gps accessors!

I tested many times and after 10 location requests 8 are fine and two are very inaccurate (500 meters>) - but if i test 10 times with maps app (same location) i always get a good result back! Something seems to work different here for me but i dont know what is going on behind the scene (no more info can be found on the web)

Ciao
Ralf (

Last edited by rhuettl; 10-18-2008 at 10:11 PM.
rhuettl is offline   Reply With Quote
Old 10-22-2008, 12:12 PM   #17 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

Hey iPhoners,

somebody must have solved this problem...

In other words: Why is didUpdateToLocation not more called after a non deterministic counts? I never call stopUpdatingLocation so i am awaiting a continuous call to GPS (and as a result a call to my didUpdateToLocation).

Sometimes it is called 10 times and other times it is only called 3 times (and then no more). I face to start it again with startUpdatingLocation then - but this makes no sense because i like to get infos ten times or continuous (without calling stop and start etc.)

Any other with the problem getting accurate data from gps in a fast way without these kind of problems and workarounds?

Cheers
Ralf
rhuettl is offline   Reply With Quote
Old 10-24-2008, 05:35 AM   #18 (permalink)
Registered Member
 
Join Date: Jul 2008
Location: Kiev
Posts: 75
Default

Quote:
Originally Posted by varchar View Post
I have solved this problem.

Basically the way to solve is to ignore the locationupdate if it is not very accurate or it is to old.

Below is the code... It works like a charm.... I get amazing accuracy... I am so happy!

Code:

// Called when the location is updated
- (void)locationManager:(CLLocationManager *)manager
	didUpdateToLocation:(CLLocation *)newLocation
		   fromLocation:(CLLocation *)oldLocation
{
	
	NSDate* newLocationeventDate = newLocation.timestamp;
	NSTimeInterval howRecentNewLocation = [newLocationeventDate timeIntervalSinceNow];
	
	// Needed to filter cached and too old locations
	if ((!currentLocation || currentLocation.horizontalAccuracy > newLocation.horizontalAccuracy) &&
		(howRecentNewLocation < -0.0 && howRecentNewLocation > -10.0)) {
		if (currentLocation)
			[currentLocation release];
		
		currentLocation = [newLocation retain];
	}
	
}
...
Can u post a bit more code, e.g. where do u initialize currentLocation, how do u call timer, do u use timer in controller which is fired every n seconds etc.

Last edited by pashik; 10-24-2008 at 06:36 AM.
pashik is offline   Reply With Quote
Old 10-24-2008, 11:40 AM   #19 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

His code is nearly identical to mine but it cant really work like a charm because there is a bug (or feature) so that didUpdateToLocation wont be called again (this is happining from time to time - non deterministic for me) by the manager and the timer/times to get data did not reach the max - and then?? No location found or?

Cheers
Ralf
rhuettl is offline   Reply With Quote
Old 10-24-2008, 12:32 PM   #20 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

Here is some further info about accuracy coming from locationmanager:

1st call => Giving the last location (old one for example from the maps app)
2nd call => Giving a new location but very inaccurate!
3rd call => Giving a new location with better acuracy

Further calls can give more accuracy but they are time consuming (the fourth call is statistically takeing more time!) and there is no guarantee that the accuracy is better then the third call!

I think maps app is handling three calls (very fast and a hopefully good accuracy)

And there is my old (other problem) that there is NO GUARANTEE thet gps is called more than three times - sometimes it does sometimes not. I did not found out when/why ...

My strategy is to run it three times and:
- if the accuracy is better than 20 meters i return (result good)
- if the three calls are gone and the accuracy is better than 100 meters i return (bad but good enough to use)
- if the three calls are gone and the accuracy is bader than 100 meters i take the last known location and the user is able to retry it

Ralf

Last edited by rhuettl; 10-24-2008 at 12:42 PM.
rhuettl is offline   Reply With Quote
Old 11-21-2008, 12:36 PM   #21 (permalink)
Registered Member
 
Join Date: Nov 2008
Posts: 34
Default askin' the pros

Since you guys seem to know alot about the CoreLocationFramework, I'm asking you for your advise concerning my request which i posted in this forum:

http://www.iphonedevsdk.com/forum/ip...aware-app.html

I really would appreciate your help since I'm not getting further.
zword is offline   Reply With Quote
Old 11-22-2008, 08:40 PM   #22 (permalink)
Registered Member
 
Join Date: Aug 2008
Location: Germany, Munich
Posts: 244
Default

After some weeks maybe there are some new strategies out there in the real world? Somebody with experiences?

Cheers and happy GPSing
Ralf
rhuettl is offline   Reply With Quote
Old 12-10-2008, 06:59 PM   #23 (permalink)
Registered Member
 
Join Date: Nov 2008
Posts: 34
Default Only 1st LocationUpdate works

I wrote my first LocationAware app, therefore I read some examples in different books and looked also at the apple reference example.

I have the following problem, when I start my application I get the first fix with the correct Latitude and Longitude values quite quickly, but starting from the second update I only receive -0.0000 for both, Lat. and Long..

I have the problem on the device and also in the simulator.
They only main difference between my code and your code examples and the Apple LocateMe example is that I don't use the Singleton pattern to create a CLLocationManagerDelegate, maybe this is causing my problem.

Has anybody delt with the same problem or has an idea how to solve the problem?

I could also post some of my code, if you tell me which part is important for you.

Help would be really appreciated because I'm reaching a point where I become desperate.
Thanks in advance.
zword is offline   Reply With Quote
Old 12-16-2008, 10:26 PM   #24 (permalink)
Registered Member
 
Join Date: Aug 2008
Posts: 95
Default

Zword,

Can you post the code you are having trouble with and we can try to assist in debugging it?

In the meantime, here is code which works well:


Header

Code:

@interface MyTestGPSViewController : UIViewController <CLLocationManagerDelegate> {
	
	NSString *myCurrentLatitude;
	NSString *myCurrentLongitude;

	CLLocationManager *locationManager;
	CLLocation *currentLocation;


}

@property(nonatomic,retain) NSString *myCurrentLatitude;
@property(nonatomic,retain) NSString *myCurrentLongitude;

@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) CLLocation *currentLocation;

- (void)locationManager:(CLLocationManager *)manager
	didUpdateToLocation:(CLLocation *)newLocation
		   fromLocation:(CLLocation *)oldLocation;


@end

Implementation
(contains only excerpt of related code for GPS)
Code:



- (id) init {
	self = [super init];
	if (self != nil) {
	self.locationManager = [[[CLLocationManager alloc] init] autorelease];
		
	locationManager.delegate = self;
	
	locationManager.desiredAccuracy = kCLLocationAccuracyBest;
		
	[locationManager startUpdatingLocation];

	}
	


// Called when the location is updated
- (void)locationManager:(CLLocationManager *)manager
	didUpdateToLocation:(CLLocation *)newLocation
		   fromLocation:(CLLocation *)oldLocation
{	
	NSDate* newLocationeventDate = newLocation.timestamp;
	NSTimeInterval howRecentNewLocation = [newLocationeventDate timeIntervalSinceNow];

//	NSDate* oldLocationeventDate = newLocation.timestamp;
	//NSTimeInterval howRecentOldLocation = [oldLocationeventDate timeIntervalSinceNow];

	// Needed to filter cached and too old locations
	if ((!currentLocation || currentLocation.horizontalAccuracy > newLocation.horizontalAccuracy) &&
		(howRecentNewLocation < -0.0 && howRecentNewLocation > -10.0)) {
		if (currentLocation)
			[currentLocation release];
		
		currentLocation = [newLocation retain];
	}
	
}


	
	return self;
}
varchar is offline   Reply With Quote
Old 12-17-2008, 04:15 AM   #25 (permalink)
Registered Member
 
Join Date: Dec 2008
Posts: 19
Default

Hi,
this thread is very interesting
I have a question.
I try to get speed, but compiler give me a error that don't exits structure.
I use this notation:
Code:
double speed = newLocation.speed;
Thanks
Silvia
silviuccia is offline   Reply With Quote
Reply

Bookmarks

Tags
cllocationmanager, gps

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



» Advertisements
» Online Users: 254
23 members and 231 guests
ADY, bookesp, chillyh, ckgni, dacapo, Dani77, Davey555, Desert Diva, glenn_sayers, HemiMG, JasonR, LEARN2MAKE, M.A.S., marshusensei, mer10, nobre84, prchn4christ, Raggou, Rudy, ryantcb, themathminister, theone8one
Most users ever online was 1,187, 10-11-2011 at 08:09 AM.
» Stats
Members: 158,885
Threads: 89,230
Posts: 380,765
Top Poster: BrianSlick (7,129)
Welcome to our newest member, bookesp
Powered by vBadvanced CMPS v3.1.0

All times are GMT -5. The time now is 02:36 PM.
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0