A method of indoor cooperative localization of a query portable electronic device, the method comprising: receiving at a localization server a plurality of location identification messages comprising inertial navigation locations determined from previously known GPS location, each providing a known location information of a respective portable electronic device (610a-d) and an associated Bluetooth or IEEE 802.15 transmitter identification of the respective portable electronic device (610a-d); storing the received location information and the associated Bluetooth or IEEE 802.15 transmitter IDs at the localization server; receiving at the localization server a location request message providing one or more Bluetooth or IEEE 802.15 transmitter IDs of portable electronic devices (610b-d) in communication range with the query portable electronic device and a Bluetooth or IEEE 802.15 transmitter ID of the query portable electronic device; retrieving at the localization server location information from the stored location information associated with the one or more Bluetooth or IEEE 802.15 transmitter IDs of the portable electronic devices (610b-d) received in the location request message; estimating at the localization server a location of the query portable electronic device based on the retrieved location information; storing at the localization server the estimated location of the query portable electronic device with the associated Bluetooth or IEEE 802.15 transmitter ID; and transmitting from the localization server the estimated location to the query portable electronic device; and upon receiving the location estimation, the query portable electronic device using an inertial navigation system to extend the location estimate until an error threshold associated with the inertial navigation location is reached. receiving at a localization server a plurality of location identification messages comprising inertial navigation locations determined from previously known GPS location, each providing a known location information of a respective portable electronic device (610a-d) and an associated Bluetooth or IEEE 802.15 transmitter identification of the respective portable electronic device (610a-d); storing the received location information and the associated Bluetooth or IEEE 802.15 transmitter IDs at the localization server; receiving at the localization server a location request message providing one or more Bluetooth or IEEE 802.15 transmitter IDs of portable electronic devices (610b-d) in communication range with the query portable electronic device and a Bluetooth or IEEE 802.15 transmitter ID of the query portable electronic device; retrieving at the localization server location information from the stored location information associated with the one or more Bluetooth or IEEE 802.15 transmitter IDs of the portable electronic devices (610b-d) received in the location request message; estimating at the localization server a location of the query portable electronic device based on the retrieved location information; storing at the localization server the estimated location of the query portable electronic device with the associated Bluetooth or IEEE 802.15 transmitter ID; and transmitting from the localization server the estimated location to the query portable electronic device; and upon receiving the location estimation, the query portable electronic device using an inertial navigation system to extend the location estimate until an error threshold associated with the inertial navigation location is reached.