Location on an iPhone requires a data plan. This is because your iPhone’s GPS downloads an “almanac” file to help locate itself. This can’t happen over Wi-Fi, as these files are not on the internet, but on the internal network of your carrier. 

As for your iPhone not using the Wi-Fi to locate itself, that’s probably because the network is not yet in Apple’s database.

There’s must be something broken if the iPhone is not showing up as online. This may be because of a tweak or a bad jailbreak.

Source: http://en.wikipedia.org/wiki/Assisted_GPS