Support Page for Comob Net
Please leave any comments you may have about Comob Net below on this support page.
While most users of Comob Net will probably just use it with our server as it comes configured by default, it was our goal from the start to also support other groups of researchers, artists, etc. by giving them an opportunity to use the app with their own servers to collect their own location data.
To set up your own server, you need a standard web server:
The Comob Net iPhone app sends requests to the server (specified by the base url, which can be changed in the advanced settings) with HTTP GET variables. It uses the same variables as the Comob app, ‘uid’,’lat’,’lon’,’acc’,’time’ which correspond to userid, latitude, longitude, accuracy and timestamp (the number of seconds since 1970 (UNIX timestamp)).
In addition to that it also sends the variables ‘alt’ (altitude), ‘altacc’ (accuracy of the altitude (<0.0 if no altitude available)), ‘grp’ (group name) and ‘rndid’ (ID consisting of 15 randomly generated alpha numeric characters).
The HTTP requests are thus of the form:
<BASEURL>?lat=<latitude>&lon=<longitude>&acc=<accuracy>&alt=<altitude>&altacc=<altitudeaccuracy>&time=<timestamp>&uid=<userid>&grp=<group name>&rndid=<random ID>
After the user pressed the mark button, it also contains ‘&mark=true’.
In return the app then expects at least the string ‘ok’ to be returned.
However, in order to be able to see positions of other people on the map, a key feature of Comob Net, this information needs to be returned by the server.
WARNING! This data format may change in the future. Please let us know that you are relying on this format by submitting a comment below or sending an email to join@comob.org.uk if you are using your own server. Then we can let you know of possible changes before releasing an update that may break your system.
A typical string returned by the server looks like this:
ok j8Gr27gas47u4xH_Jochen,55.965600,-3.191054 xMX9Ea0pcAbPYxa_work,54.600766,-5.928085
This string consists of several substrings divided by whitespaces (the app checks for whitespace characters space (U+0020) and tab (U+0009) and the newline and nextline characters (U+000A–U+000D, U+0085) ).
The first of these substrings is usually “ok” alternatively it can be “mk”, which the server sends to acknowledge the receipt of a mark (after the user pressed the Mark button) this also sets the line color to red. Something we have not actually used with our server yet is that you also can return anything from “m0″ to “m9″. While these don’t acknowledge that mark has been received (the app keeps sending the mark until it receives a “mk”), they allow you to draw the map-overlay in different colors, signalling something to the users.
The rest of substrings deliver user data. These strings consist of three substrings separated by “,” each. The first is the user name (although this is not displayed in the current version of the app). We decided to combine the randomly generated user ID (15 numbers or letters) with the user name specified in the settings screen, connected by an underscore. This helps to distinguish different Bobs and Bills in our database. If we support the display of names next to the positions in a future version, we would obviously discard the first 16 characters and just display the name from the settings tab.
The other two substrings are latitude and longitude of the person.
Have fun with it and don’t hesitate to contact us if you have questions.
August 30th, 2009 at 11:01 am
Dear Comob,
I found your site and also the Iphone App, its looks really interesting, I have just written a submission script for the submission and it works.
The only thing is that i can’t figure out what the ‘ack’ should be to the application.
Could you help me out ?
Best regards
Henrik Bo Hansen
August 31st, 2009 at 12:45 pm
Dear Henrik,
Glad to hear that you like the app and that you are actually going to set up your own server. While we intended the app to be used by other people for their own projects in that way, I wasn’t sure if anybody would actually do it.
A warning ahead: The dataformat is still kind of experimental and may be (should be!) changed in the future ! That is the reason we did not describe it on this website before.
That said, since Henrik Ekeus, who set up and maintains our server is going to move soon and has to finish several other things before that, the server (and hence the dataformat) is not going to change for a few weeks or even moths. So I might as well let you know the data format and play with it in the meantime. Maybe you have some suggestions for the future as well, so let us know.
A typical string returned by the server looks like this:
ok j8Gr27gas47u4xH_Jochen,55.965600,-3.191054 xMX9Ea0pcAbPYxa_work,54.600766,-5.928085
This string consists of several substrings divided by whitespaces (the app checks for whitespace characters space (U+0020) and tab (U+0009) and the newline and nextline characters (U+000A–U+000D, U+0085) ).
The first of these substrings is usually “ok” alternatively it can be “mk”, which the server sends to acknowledge the receipt of a mark (after the user pressed the Mark button) this also sets the line color to red. Something we have not actually used with our server yet is that you also can return anything from “m0″ to “m9″. While these don’t acknowledge that mark has been received (the app keeps sending the mark until it receives a “mk”), they allow you to draw the map-overlay in different colors, signalling something to the users.
The rest of substrings deliver user data. These strings consist of three substrings separated by “,” each. The first is the user name (although this is not displayed in the current version of the app). We decided to combine the randomly generated user ID (15 numbers or letters) with the user name specified in the settings screen, connected by an underscore. This helps to distinguish different Bobs and Bills in our database. If we support the display of names next to the positions in a future version, we would obviously discart the first 16 characters and just display the name from the settings tab.
The other two substrings are latitude and longitude of the person.
Well, as you see, it is a bit of a hack. Returning an XML file with all that data to the app would certainly have been more elegant, but while we had many ideas what we might want to support in future versions, we had a tight schedule to get it ready and through the app store review process before a workshop in Belfast last week. So we decided to go for a simple format now to gain some experience and find out what we might need in the future based on that.
Hope it helps, feel free to ask more questions and do write to us with your suggestions. I can’t promise that we will implement them, but we will at least considered it.
Sincerely,
Jochen Ehnes
February 9th, 2010 at 6:07 pm
Are you working on a v.2.0, or will the app remain as it is.
Michael
February 9th, 2010 at 6:16 pm
We have many ideas about how to extend the app - twitter feed communication for example, any suggestions would be appreciated.
Ultimately its a matter of time and funding, so it may be a while before the next update.
Chris
November 24th, 2011 at 9:50 pm
Great app, could expand in many ways eg, link to google streetview to be able to see exactly where a member of the group is. I was using it, I could see where the person was via satellite image but would have been lovely to then link to streetview! The ability to edit and delete users would be useful and can anyone tell me why when I zoom in on a user it won’t let me stay zoomed in? It zooms back out automatically, very frustrating! I know this was never designed for use like Apple’s Find Friends but it is so superior! Keep up the good work guys!!
May 1st, 2012 at 10:12 am
Hi Dave,
sorry for the late reply, I only read your comment now. (I’m no longer at Edinburgh University, so I’m not so closely involved anymore)
The current version of Comob Net actually allows you to switch between different modes of following, although it is quite hidden. (The GUI is already quite cluttered and I didn’t want to add more buttons for a feature that I wanted for myself.)
Touch the “Zoom to Group” button and then swipe down. This will bring up a menu that allows you to chose to either follow the whole group (this zooms so the whole group is visible), to follow yourself (that does not change the zoom level), or to not follow anything, which means the view will not change by itself.
Hope this helps,
Jochen