Although I think we’re the first to publish a standard for geotagging SMSes, we weren’t the first to start developing one. The Open GeoSMS standard was first proposed by ITRI (Taiwan’s Industrial Technology Research Institute) in 2008, and is currently being developed by the Open GeoSMS Standards Working Group within the Open Geospatial Consortium. Their current discussion paper describes version 2 of the standard, and they have a Facebook page for news and announcements (mostly written in Chinese).
There is a reference application called Open GeoSMSer, which is available for Android, Windows Mobile 5/6, Symbian S60, and the iPhone. Unfortunately the Android version is compiled under a pre-1.6 environment, so it won’t install on my HTC Tattoo.
Open GeoSMS messages are encoded using the following format -
The latitude and longitude are encoded using NMEA0183 (a National Marine Electronics Association standard). Their format is DDMM.mmmm,H, where DD is degrees, MM is minutes, mmmm is decimal minutes, and H is the bearing (N, S, E or W). For example, the longitude 121.566277 would be encoded as 12133.9766,E
The format can be B (Basic), A (AGPS), E (Extended), P (Point of Interest), or Q (Query), and the data component of the message will depend on this format.
Here’s a sample message -
GeoSMS/2;2230.978,N;12123.566,E;E;My car has broken down
Let’s be honest, I don’t think this is a very good standard. There are four broad criteria that a geotagging SMS standard should satisfy -
- It must contain location data. Latitude and longitude at a minimum, altitude and accuracy if possible.
- It must be machine-readable. Software should be able to unambiguously spot geotagged messages from all the millions of SMSes sent every day.
- It should be human-readable. Many messages will arrive on phones that don’t recognise the standard, so they should make sense to a human reading them as straight text.
- It should be compact. An SMS is limited to 160 characters, so the location data should be represented in as few characters as possible.
Now, the Open GeoSMS format is certainly machine-readable, and it specifies latitude and longitude. But it performs poorly on the other criteria.
Leaving out altitude and accuracy looks like an oversight. When there’s no GPS signal, many smartphones estimate their location using mobile phone towers, which can have an accuracy of a kilometre or more. If you’re requesting a taxi or an ambulance for example, it’s very important to include an accuracy estimate so they know if the location is reliable. Altitude is less important, but might be useful for finding someone in a multi-storey building.
The use of NMEA0183 is a big mistake in my opinion. Compared with good old base-10 encoding it’s less compact, it’s much less human-readable, and it’s more difficult for software to parse (base-10 parsing is built in to all software libraries).
I also think the use of pre-defined formats (B, A, E, etc) is a mistake, since it forces the standardization of every possible application of geotagging up-front. Standards should confine themselves to a core requirement (embed a location in an SMS) and leave application-specific requirements to separate standards that build on it.
But as I said, it’s a work-in-progress, and these issues may be addressed by the time it’s finally ratified as a standard.