We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Concurrent Online Webgis: A New Way To Map Together

00:00

Formal Metadata

Title
Concurrent Online Webgis: A New Way To Map Together
Title of Series
Number of Parts
95
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language
Production PlaceNottingham

Content Metadata

Subject Area
Genre
Abstract
Imagine a map on which many people collaborate at the same time. Imagine you see the edits happening in real time and you can also see the position of your collaborators and their current view on the map. A Google Docs for maps so you will. Imagine this map in a web-browser that runs on a mobile phone. Imagine not a single bit of data has to be stored on a central server but people are all acting as nodes storing the data in their browser.... and it still works offline..... With the rise of HTML5, including websockets and indexeddb, this is now possible. We created a concurrent online webgis where an unlimited amount of people can do collaborative work on a map in real time. A combination of Openlayers, Websocket and Indexeddb makes it possible to see and update each others edits and location. When people go offline their edits are stored for later synchronisation with their peers. This makes it very useful in unreliable network conditions. The tool has already been deployed in a few test cases. In low level educational projects where students share data with their smart-phone and create a common map. Also during wildfires where officers in the field regularly update the situation for the commanders in the control room. This is just the beginning, new HTML5 capabilities like WebRTC will open up new roads in map-making. Maps will become more dynamic and social, where (map)data will be directly shared between peers. Also if you get bored you get to make a map together with everybody else in the room.
MappingComputer clusterPeer-to-peerFunction (mathematics)Data managementSieve of EratosthenesServer (computing)Hand fanTwitterBlogCodeCommunications protocolField (computer science)Peer-to-peerNormal (geometry)SoftwareCache (computing)Socket-SchnittstelleMedical imagingBitConnectivity (graph theory)Web 2.0Remote procedure callTouchscreenAreaCASE <Informatik>Term (mathematics)QuicksortLimit (category theory)CollaborationismInformation securityNetwork socketWeb browserRectangleSatelliteConnected spaceDifferent (Kate Ryan album)View (database)Zoom lensFirewall (computing)Extension (kinesiology)Router (computing)ForestForm (programming)Data managementComputer iconCellular automatonFunctional (mathematics)Multiplication signInternetworkingFlow separationWireless LANData transmissionControl flowRight angleMappingShared memoryTexture mappingReal-time operating systemLocal ringGeometryGoodness of fitEvent horizonUniform resource locatorMobile WebVideo gameSubject indexingDigital rights managementPoint (geometry)Decision theoryWorkstation <Musikinstrument>Scripting languageCartesian coordinate systemComputer clusterMobile appSoftware developerProjective planeClient (computing)Presentation of a groupAbsolute valueLine (geometry)Message passingTablet computerType theoryGraphical user interfaceWordSynchronizationDatabaseSubsetGroup actionProxy serverInformationLaptopNeuroinformatikTelecommunicationoutputState observerTesselationData storage deviceFrequencyUniverse (mathematics)Ferry CorstenGame theoryLevel (video gaming)Order (biology)Endliche ModelltheorieSpeech synthesisBuffer solutionSingle-precision floating-point formatWhiteboardOpen setCoefficient of determinationRevision controlProcess (computing)MereologyMachine visionState of matterCircleMoment (mathematics)Stress (mechanics)Physical systemReverse engineeringInfinityMathematicsLogicPhysical lawStructural loadBridging (networking)Disk read-and-write headUniform boundedness principleDomain nameOperator (mathematics)Rule of inferenceHypermediaMatching (graph theory)Musical ensembleSoftware testingClosed setBit rateTopological vector spaceNetwork topology1 (number)Bookmark (World Wide Web)Computer animation
Transcript: English(auto-generated)
Let's see if this works. So a bit about me. Like, I work at Jordan. Jordan is a reasonably big company. It has some research department, which means that I can do fun stuff while other people earn money.
And this is one of the projects we come up with. I mainly work on new ways to work with maps. I think everybody, well, everybody should have read, if not have read the blogs
on why map portals don't work. I'm one of the big fans of that storyline and I try to explain it to my company. But to have a new way of working with maps, and we invented COW.
What is COW? COW is short for Collaborative Online Web GIS. We first came with COW, then with REST as you can understand. So what is COW? I can give you the short answer and then if you don't like it, you can leave. You can also stay for the whole explanation.
The short answer that it's basically Google Doc for maps. There's some new technology and we looked at it as a, oh, could we make sort of Google Doc for maps? Before I dive into the technology and before everybody is allowed to sit on their mobile
and I won't be offended, I first explain a bit about the terms and ideas behind it. I started with me. I'm somewhere, I'm looking at England and then I have a friend which I'm talking to and he says, yeah, I'm also looking at England and I'm seeing this.
Well, the British people will already see what went wrong. One person didn't look to England, he looked to the UK and the other one is this one here. So me, I'm up here. And then a third one could also be looking to England and has a bigger screen.
So just sees the whole of Europe. So they're all appears, they're all are together in what we call a herd. I don't think we do with the name of the application, obviously. Well, these are working together and we have a server component.
It's very tiny, it's called a cache. If you're very good, you can read it and no JS thing. So the different peers in the herd are talking to each other but they still need a connection with cache
and there could be multiple herds all working together. And then the interesting bit is instead of having to somehow communicate that you're looking at England, it is you could see where the other one is.
So you have a rectangle of the extent of what the other person is seeing. Several times in Google Docs, you can see where the other one is editing, you see the small icon with the name and form. And well, that doesn't really work
if you're zoomed in too much, then you don't see the extent of the other person because it's just bigger. So the third person would be able to see that one is looking at England and the other one is looking to the UK and Ireland. So this is all nice.
So everybody knows what the other person is looking at. It looks more interesting if you can also do feature editing. So then you can suddenly start working together. I draw something on the map and I tell the other ones,
yeah, I draw something, where are you looking at? And you see, okay, he's looking at this piece of the map and you can see how it looks cool. I say, how does it work? I have my phone here. I have to unlock it, unlock it. Let's see, yeah. You see me moving,
I'll move the other way. So currently I'm looking, I'll zoom out a bit. Again, do nothing. And well, these are all the people connected in this earth. This one is my computer at home
where I accidentally left off. This one is me and this one is the computer here. And this is just to have an idea of there's traffic going on. Only when I do something, there's traffic and otherwise there's nothing going on. I can zoom to this. I can also start drawing here some things.
So I do square there. And also, this laptop is really old. Yeah, so I can do something, I can say hi.
And then it should say hi. What we're doing there, edit this one. Then it's more easy here to do.
This way, everybody can work together and can draw. As you can see, it works instantly even on this fantastic Wi-Fi we have here. So how does it work? And this is the technical bit
and that might be a bit boring. So that's why I put the URL of the application. It's a bit, I hacked it in last week. So it's a bit buggy. It only works because it uses new technologies that appeared early this year, last year.
So you need to have either Chrome or Firefox or iOS six or seven, I believe. Let's feel free to join. Oh, I see people joining. One thing I forgot in the application,
there's a green dot on the right corner. Press there, you should be able to change your name. But okay, so everybody is joining and I can do the technical bit. The trick behind this application is called secure web sockets.
That's a new protocol. It helps with the direct communication. The problem of having real-time communication over the internet is that if you talk to a server,
they tend to have a firewall around them. And so if you want to talk to the server, you first need to talk to the server and then the server is not up. You're there and then it can talk back. If a second peer arrives and he wants to talk to the server and the same bugs, but he wants to talk to you,
he cannot just send a message to you because the server cannot talk to you. It can only talk to you if you ask the server first. So you have to wait for the other one to say, well, let's see if there's something new and then there's something new and then you'll get the answer. Web sockets solve that by making what effectively
is a direct secure channel to the server where all communications can go both ways. So if the server has something to say to the client, it will do so and it will do so directly.
But this is called secure web sockets. There's also normal web sockets. That's the one is WS and the secure web socket is WSS. The reason I use secure web sockets
is because since it's such a new protocol, all routers and firewalls, most routers and firewalls don't unsand it. And what happens with normal web sockets is that sometimes the router will try to unsand it
and mess it up and then everything breaks. Secure web sockets, they're both secure and just cut through everything because the routers think it's an HTTPS thing. The other interesting bit about this application and that's not necessarily the real-time communication
side of it, it's the disconnected communication side of it because as we all know, every once in a while, especially on mobile, your network will fail. You get disconnected for a short or long time. And if you're working on something, for instance, you're doing the field observations and you're writing in your features.
You don't want to suddenly stop working because you lost your internet connection. So another new HTML5 thing is called index.debay.
This is a local storage in the browser, which can take as much as your device has. So I think at some point the browser will say, well, it's taking a whole lot of space, are you sure? But other than that, you can take whatever. So you can also cache all the tiles
of your region you want to go to. So that works like this. Normally you have a connection in which you're a server. And if you edit something, you can send it to the other guy.
If for some reason your connection breaks, you're on your own, but you can still edit. It will store it locally in the database of the mobile device. And once you get connected, he doesn't know anything. Once you get connected, yes. Once you get connected, it will sync everything
and everybody's happy. Everybody is. Oh, there's also, that's an hidden feature I did not save it.
You can also create a new word where you say, well, I'll do that here. I want just to work with you. You're not working, so that's easy, Sharon. Then it will show here, I think, if I say,
night joy, you're gonna have multiple herds, but for some reason I'm not really joining it. There I went, now I'm in a new word.
And so you can have multiple working groups working together in their own subset of the application. And if you're in one herd, you don't have the information of the other herd.
Another thing, well, you can see that, well, that's a bit hard to see because there are too many people, but it uses the geolocation API. It's also an HTML5 thingy, so you know where you are. It will use your GPS or your,
or wifi to put you on an app, so you can see what the person is looking at. So that's the extent. You can also see what the person is at. And that one, this fancy stuff, we mainly did it to do some kind of monitoring
on who is using it. That's all D3, and there are some nice animations in there as well, but you don't see them. It's also D3, it's fun to work with D3. And we do fun stuff, so. We use opalayers, everybody at work asks, why didn't you use leaflet? But leaflet is nice, but opalayers is great.
That's basically the other thing. Leaflet doesn't do drawing on a mobile device very well. And what else? Well, not a guess, I talked about it. And the other thing, because like I said, this whole web socket is really new. There's not much support on the server side
when we started and we needed to have it behind firewall and we need to reverse proxying, whatever. And we discovered this H8 proxy. It's not very well known, but it's really awesome. If you need some kind of high availability, hence name,
proxying, that one is your friend. So, what's next? A lot of time at least. You need to have a jet function. That's pretty obvious, if you work together, you want to have jet function, so.
If you looked at web sockets, most examples are a jet function. So we didn't do it yet, but at some point we want to do it and do something more intelligent than just a jet. We want to do something with maps and geo jetting or whatever, I haven't really thought about it yet.
Rights management, some people in company find it interesting and decided that, well, some people are more equal than others. So we need to figure out, because now everybody can just delete everything. It's basically upstreetmap without history at all.
And upstreetmap has some history at least. What else? Cross-hurt sharing, we still need a more fancy term, but if you're in one-hurt, you can not take your features to the other-hurt and that might be useful.
What else? Other stuff, probably. And especially these two, they come from, there's in Holland, a very nice geo location event thingy called the Geofort.
If you ever come to Holland and you either have a car or a helicopter, go to Geofort, it's impossible to reach but it's really fun to be there. And they want to tell people about the power of geo. And one of the many good things of geo
is during a disaster, it's good to know where people are, what's happening, where things spread down, where the actual disaster is, where the fireman is. And this kind of application, the real-time offline, online sharing of geo data would be nice for the sales management.
They were like mayors and firemen. They come to the Geofort and then they see how it works and they're this right management because the mayor can make some decisions
but the fire chief cannot. Some people may say, are allowed to do some things and others aren't. So cross-herd sharing, you said that some people,
you can't take your features to another herd? Yeah. So it's geo features? Are you talking points, nodes, what do you- Point lines are important. So everything you draw on the map, it stays within your herd. Within your herd, okay. So what happens in the herd stays in the herd. Okay.
So more questions, we already started with questions. Are there more questions? Absolutely. Yes, I couldn't get SSH to my presentation
but it's on GitHub, it's github-geoden-gal. For some reason, people geoden did it with a capital G. I don't like it but that's the way it is.
Yeah, and we will be working on it and you're welcome to join or play with it. Both the client and the server component are there. Then we're also working on what's called a PRIAS version.
PRIAS is a peer-to-peer protocol but on the Apps Script to make with DevXA, which is another new protocol written from a patient protocol that's coming up. But the PRIAS API changes every two weeks.
So it might be hidden somewhere in our code base but once the PRIAS API stabilizes, then we produce that one as well. Well, you can follow me on Twitter and you can email me with questions. What about micro-tasking?
How do you mean? Well, say you're in a herd, say you have many herds and you wanna assign them each a area to work in. Ah, like the geofence, this is your area to work on. Yeah, and yeah, it's micro-tasking.
It's cool indeed. I did not think about that. It has to do a bit with the right management because then you are going to limit people to certain areas where you say, well, this is your area to work on. But that shouldn't be too hard, isn't it?
Like for many things, aren't they? Yeah, this would be an explicit, you're in this hexagon or whatever. And then there could be someone like in a remote place that's looking at other images and chatting with them and saying,
I see on this imagery this, go check it out. I don't know. I mean, just fun stuff like that. We also, because now it's just one base map. Where you can say, well, I'm looking at these and these layers. So you can take over someone's view
and get their layers or their imagery, especially like satellite imagery where we have different satellite imagery. I'm not looking at the one from July. And then instead of having to find out on your map portal, which one it is, you just take it over the view of the other person.
And is there, I missed the beginning of all this. Is there the ability to do, you said something about peer-to-peer transmission of data? Yeah. Are you doing that? So you could use Bluetooth to,
let's just say you don't have wireless internet or cell. I think you need, I'm not sure. I think you always need to have and some kind of a speed connection. You can have like an ad hoc network. So that will work, but I don't think you can do it
on a Bluetooth or anything. And an ad hoc network requires what? Well, we did some stuff with the fire department doing forest fires, and then they had one truck
which had boost wifi. So they would create a local wifi network without any internet that you, they would inform you back to it.
In terms of lights, what do you think, you know, like restrict the usage where it's a desktop alliance and you don't allow to edit the alliance, something like that, or? Yes. The crossword sharing is one where some people
can do it, some people can't. Deletion of features, everybody can create new features but only certain people can remove them. So that's kind of the kind of stuff. When you use HTML5, what's about the support
or do you know about difficulty in different browsers? Yes, because we use web shots and there are not many browsers out there who do web shots. So like I said, it's Chrome, it's Firefox. IA10, I believe, I'm not sure,
Safari, not on iOS5, iOS6, I believe. We use index to be which shows I'm not supported everywhere. Like I said, it's research and we're also a bit like, well, we don't care about the old stuff. It makes life for me a lot easier.
You don't care about the old stuff. So if you're using IA8, I don't care. Okay. And I was at the social mobile development applications for actual customers for station check. And basically they all say, well, we just take one device and we develop for that and everybody within that company
will use that one device. Mobile development is really hard. It is, I know. And I say, if you can room with Chrome on your device, that's quite a lot of device, can you do that? You mean one type of device,
not just one single device? One type of device, yeah. There was this one tablet that they supported and they had like tons of tablets. Otherwise it would be kind of silly, you just have one device and no copy. Room with my device. We share our data and pass on the device.
Okay, Sue, it's your turn to come out. All right. Any further questions? This is not the case. Thanks again. Thank you.