GeoMapFish 2 - Ready for the Future
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Bolognini, Yves (Camptocamp SA)
Belo, Emmanuel (Camptocamp)
GeoMapFish is an open source WebGIS platform developed in close collaboration with a large user group. The second version offers a modern UI based on AngularJS. OpenLayers 3 and an OGC architecture allow to use different cartographic engines. Highly integrated platform, large features scope, fine grained security, reporting engine, top performances and excellent quality of service are characteristics of the solution. In this talk we’ll present the technical aspects of the platform and its modular architecture.
 So, our next presentation is another geospatial library, Geomapfish, and we have here Emmanuel Bell to present. Please introduce yourself. Thank you. Thank you. So, welcome to this talk. I will present you the Geomapfish open source web geese application. It's a totally open source application. You can find it on GitHub. Server on the front-side are both open source published. Just to introduce myself, I'm Emmanuel Bellot. I work for Cam2Camp. Cam2Camp, we are an open source company that was started in 2001, so more than 15 years old now. We are a software editor and software integrator. This means we contribute heavily into the open source software we use. We are nearly 70 employees and we cover three countries, France with the Chambéry, Switzerland with Lausanne and Alton, and Germany with a location in Munich. So, Geomapfish. So, we use Geomapfish as a web geese application. For us, Geomapfish is a rich web geese application. There are tons of geese features built into Geomapfish. And one of the distinctions of Geomapfish is that it's a community-driven application. It's not Cam2Camp or some editor that decides how it will be. It's a discussion with the user's community and we decide together how the framework, the application will evolve. And one of the foundations is that we use OGC standards so that it is interoperable. So, I said there is the Geomapfish community. We have two times a year user group's meeting. And the goal of this community is to ensure the sustainable development of a leading open source web GIS. And this means that we have to target multiple aspects. First, we need to promote an inclusive dialogue between the users and the developers to decide the roadmap, the features, how the web geese will function. It's an open source community. So, we also need to protect that decision-making is made in a consensual way. It's not kind of a dictatorship. It's a consensual decision how it will improve. And also, as we have seen yesterday in the sustainability talks about open source software, we need to target also fair funding. So, we need to, with the community, ensure that we have regular resources stream for the maintenance of the project and also for the future development. And therefore, we target a broad contribution basis between the user group so that the level of contribution is kept, are kept as low as possible. And still, the contribution are on free basis. No one is, there is no mandatory, you can be in the user group and not contribute financially. It's not mandatory. But in the overall, this community function as is, and since 2011, we could develop two major version of Geomapfiche, one based on GeoX and was based on Angular.js and seven minor version with each time new functionalities. So, how is the user community built? It's different. It's a public sector. It's private organization. They all have in common the goal to publish so GeoData so that the public engineer or other guys can do geospatial analysis on a WebGIS. And all this community, they need a WebGIS for this. So, we have cantonnes, so like regions in Switzerland. We have communities or groups of communities. We have cities using the software. We have engineer offices. We have facility management, also like Lyon airport or the EPFL in Lausanne. And one of the interesting thing is that is this collaboration between different kind of users make that the requirement, the design of the specification, the design, all this ensure that the result is practical, it's usable, it's practice-oriented because we take care of all these requirements. And of course, we have a broader collaboration as we use open layers. For example, in Geomapfiche, we collaborate then also with national agencies in developing open layers, for example. So, what are the software architecture concept we have in Geomapfiche in this WebGIS? First, we target, we want, we like that the architecture is coherent. We don't want to have to configure the WebGIS in multiple places. So, our paradigm is we use one cartographic engine and we will configure in this cartographical engine the layers, the queries, the legend. So, everything is configured in the map service and POGC is sent to the client. So, all the map is configured in one point, it's in the backend. And in the case if you use QG server, QG is QG server, you also can reuse the configuration you've done on your desktop GIS for the server part. Then in each WebGIS, there is a search tool, so you can search for data, you can search for places. And here, our basic idea is we have one full-text search table in PostgreSQL and all the data you put in this table will be accessible in the full-text search. So, it's very easy to handle the search. And then we provide an administration graphical user interface to define the structure of the layer tree to configure the security. In this, with these different kind of users, we still need, it's an application, but this application needs to be configurable. Each one has, should have a choice about the layout, how it will look like and to activate the activate functionalities or to enhance the application with his own features. And here, our architecture is very, I would say it's mature because it allows to enhance the application without forking the basic common source code. So, you don't need to fork and this makes that updates then are kind of easy. I said there is a security proxy and so you can also restrict access to some layers or features or attributes within the WebGS. So, this is a table of all the features that geographic GIS GIS features that have been implemented to see that it's a broad, we have a broad perimeter. And the architecture, as I said, we have PostgreSQL. We can use different cartographic engines like we use OGC norm. So, it functions with GeoSev and MapSev or QG server. And the GeoMapFish application, it's based off a backend in Python and a front end with open layers and Angular.js. So, how does it look like? This is version one. We are about to release version two. So, this is version one. You have a classical WebGS user interface and of course we use WMTS for the background data. So, we saw, for example, a slider that allows to change or to adjust the opacity between different layers. We have a team organization that make it easy for no experts person to access to some specific preconfigured maps with, for example, yeah, historic data or poise or cadastral. So, this kind of information. Of course, there is a layer tree. All these things about WebGS, they are implemented. We've seen this is a kind of mandatory feature in WebGS. We have dynamic legend. So, this means once you have configured your WebService, WMS, WFS, you also get, get legend graphics, a dynamic legend that takes care of the zoom level. So, each time if you feature a feature type appear at a certain zoom level, the legend will update itself. And we do have a different kind of queries. So, you can query per point or per, per B box. So, WMS or WFS query and display the result in a pop-up or the same point or B box query and display the result in a grid with the data structured in different tables according their layer origin. We do have a search. I said everything is configured in the PostgreSQL full text search table. And here you can have the results either grouped in different topics like a commune's address or different point of interest or everything in the same more in the auto completion mode. And this works well. You can put also a lot of data in the, in this table and search for addresses, search for parcels, search for anything. You can draw red light, do some redlining on the, on the map with point lines, polygons and then change the color, change the size, put some text on it. You can print with the map fish print component which allows to select the zone to, to rotate the, the, the bounding box for the print. And you get either a PNG or a PDF file. In the, in the current version we use a map fish print and we use Jasper report. This means you can also, beside the map access to a lot of data that would be in your database or in your, in your environment. So you can generate proper reports. Like these can, these two examples. If, for example, natural hazard, we use it also to generate reports about street work authorization in case you need to dig holes in the, in the street. It can, there is a lot of possibilities. And here just an example about the security. Once you are, you can be either anonymous or you can log in on once you are, you are logged in, you have, for example, access to more data sets. Here an example of also an elevation profile. Or you can do also complex queries and exports. Also based on WFS queries. As we have also customers in the facility management area, like the EPFL or the airport. We have a floor slider. This means you can adjust on the, with the slider on which floor you want to display the, the map. And of course in version one, we have a mobile layout that use the same configuration that allows geolocation. And so it's also mobile compliant. It's multilingual. We have the graphical user interface to configure the layer tree, the security. You have an edit, geolater edit interface where you can draw points, line, polygon. There you can snap on, on the lay, on, on, on the laying WFS layers. You can also access to some predefined values in your drop, in your list. So some keys are possible for, for the, the possible values of some fields. Also, for example, dates or some nice widgets allows to an economical edit. There is a routing engine with open street map routing. And this, this WebGIS also provide an API like the Google map API. This ensures that you can, once you have built your WebGIS, you can also pair the API, integrate it in another content management system. So the, the, the value of your work, of your data is, is higher because it can be used not only in the WebGIS, but also in partner websites. Then you can customize the view to simplify it or you have the standard viewer. And as an example here, different OGC servers integrated into Geomapfish. So that was Geomapfish. Now I would like to present in short what we, the new version, Geomapfish 2. It's about to be released. Actually, it's released as a mass, on the master branch of Geomapfish on GitHub. But we, we are about to have the first beta tag saying the version is complete. Now we are in the quality insurance phase. So what's the difference? We would like, we wanted to target a total universal application or a responsive application. So it should run everywhere with just one code base. And so also take part of, you take use of Open Layer 3, which is much more powerful than Open Layer 2. So we use Open Layer 3 Angular.js bootstrap. And in order to build a modular software, we, we designed in the middle NGEO, which is a library combining Open Layers and Angular.js into directive. So you have functional modules. You can reuse very easily, like GeoX components, but based on Open Layers and Angular. On the server side, it's an update of Geomapfish 1. So there is no major change on the server side. If you have all the data you have configured in Geomapfish 1, they are still configured, rightly configured for Geomapfish 2. So we use OTC protocol and the MAPFISH protocol in some cases, like for, for edit. We use the Pylon, Pylon framework, like Pyramid. And we use the Closure Compiler in Advanced Mode, which ensure that the JavaScript part is very, very well optimized. And as it's, it's kind of a huge programming effort, we also have a lot of continuous integration, continuous integration test, so that we can ensure a good quality. So I would like to just to focus on NGEO before going more on Geomapfish 2, because as this provides, atomic components, this also allows to build synergies between different kind of application. For example, we have NGEO, but NGEO is used in Geomapfish, but it's also used in GeoNetwork. It can be used in other WebGS application, the components. It allows to build your WebGS, not starting from scratch. So the library is structured like with a core, with different core directive, and then contribs, and with Geomapfish, we added the Geomapfish, the Geomapfish contribs in NGEO, sometimes enhancing the core components. If we just have a quick look at it, you'll see that the functional part of Geomapfish, so the NGEO library, it's already kind of a lot of work has been done with quite a lot of contributors. And you have, so everything here with, for example, if you go in the source code, you'll see the directive, and here all the plugins that make it easy then to build WebGS. So something like about the layer tree, the grid pop-up, profile, all this kind of information is already combined between open layers and Angular. And so in Geomapfish, we use this, add more contribs, add more directive, and if you go in the examples here, for each directive, you have an example, and if I go to, for example, to the profile, profile directive, here for profile example, you have, for each directive, you have an example, and here you can see it's, there is not the layout, it will be done in the integration part, but still the functionality to have a dynamic link between your profile to display the profile and the map, it's already implemented. So you can use it in Geomapfish, we use it like this, but it also can be used in other WebGS applications based on open layers and Angular. So this is the new layout, it is a slightly new version from the previous one, it was this design in collaboration with our users, and one of the focus was we didn't want it to get, to lose them in this process. So it's slightly updated, but it's not a total different layout, so the users are okay. So we have the layout desktop, we have a tablet, UI, and a smartphone UI. So with the same code base and two different HTML gabarit, we can target these three kind of devices. And then the new implementation of all the features we had, with new features like drag and drag because the new frameworks allow this, in the electric we have the time slider to filter on WMS time, for example, the search result in a grid is always there. The print is now, it's also implemented, measure redlining. With a new feature in this case, we had measure and redlining in Geomapfish one, and now it's the same features. When you draw a point, you get also the coordinate. When you draw a line, you also get the distance. So all this measure and redlining is now one tool. Elevation and leader profile is always there, edit snap update with action on the features, it's there also. So a lot of everything has been migrated and it's about to be released as a beta version, but you can also already check the examples online. And once we have done this 2.1 version, we're going to add free views with cesium, we'll work on a more tighter integration with QG server, and I guess we also try to integrate with Geo-Orchester, the inspire special data infrastructure. So if you want more information, go on geomapfish.org, go on GitHub. The source code is there, you have, you find demonstration, online links of online web.js, you can visit us at our both. And if you want to practice, we are hiring, so just come and see us. Thank you very much. Thank you, Emmanuel. Thank you for your time. Questions please? Yes? In the security you mentioned, you've been isolated by nature and by attribute. Is there a way to isolate by client? That is, there are two logins on the same application, two logins by people from two different companies, see different data? Oh, yes, yes. So you have users and roles, and you can say, for example, this role, he access this layer or this perimeter within this layer. And some, another person from another role access, for example, the same layer, but another perimeter, for example. We use this, in case we have multiple surveying offices working together, exactly, they build one web.js, they have one, for example, cadastral layer, and then each of their client has its own login, and then see only within the polygon of the municipality, for example. More questions? Yes, please. Do you have some, do you have any questions? So we don't have, ah, yes, the question. Yes, I'll repeat the question. Do we have plans to combine it or to upgrade it to Angular 2? Or are there other possibilities of combining Angular 2 and open layers? So, about the geomapfiche, at this stage, there is no current plan to go to migrate to Angular 2. We have a roadmap with our users. The users have founded this version of geomapfiche with Angular 1. And now they need the time to migrate the application. They have also their plugin. So it's a collaboration. As long as there is no major technological improvement which benefit for the users, I guess we'll stay on this version so that it's, we have kind of a return on investment about this technology migration. And about open layers 3 and Angular 2, we have a customer who has started such a project to build, to use these two libraries together. So it should work, yeah. Why did we choose Angular? So we choose Angular. So we were using GeoExtra. And there was this need of a responsive web map. And this, I guess, nearly two or three years ago, two years ago. And so, at this stage, Sencha didn't provide this environment for responsive, so universal at that time. So we looked at what was existing in the responsive world and decided to use Angular. And I think we are pretty happy with this choice. Any more questions? So thank you very much for attending this session. This is the last presentation. You can move to other rooms. Thank you very much.
 So, our next presentation is another geospatial library, Geomapfish, and we have here Emmanuel  Bell to present. Please introduce yourself.  Thank you. Thank you. So, welcome to this talk. I will present you the Geomapfish open  source web geese application. It's a totally open source application. You can find it on  GitHub. Server on the front-side are both open source published.  Just to introduce myself, I'm Emmanuel Bellot. I work for Cam2Camp. Cam2Camp, we are an  open source company that was started in 2001, so more than 15 years old now. We are a software  editor and software integrator. This means we contribute heavily into the open source  software we use. We are nearly 70 employees and we cover three countries, France with  the Chambéry, Switzerland with Lausanne and Alton, and Germany with a location in Munich.  So, Geomapfish. So, we use Geomapfish as a web geese application. For us, Geomapfish is  a rich web geese application. There are tons of geese features built into Geomapfish. And  one of the distinctions of Geomapfish is that it's a community-driven application. It's  not Cam2Camp or some editor that decides how it will be. It's a discussion with the user's  community and we decide together how the framework, the application will evolve. And  one of the foundations is that we use OGC standards so that it is interoperable. So,  I said there is the Geomapfish community. We have two times a year user group's meeting.  And the goal of this community is to ensure the sustainable development of a leading open  source web GIS. And this means that we have to target multiple aspects. First, we need  to promote an inclusive dialogue between the users and the developers to decide the roadmap,  the features, how the web geese will function. It's an open source community. So, we also  need to protect that decision-making is made in a consensual way. It's not kind of a dictatorship.  It's a consensual decision how it will improve. And also, as we have seen yesterday in the  sustainability talks about open source software, we need to target also fair funding. So, we  need to, with the community, ensure that we have regular resources stream for the maintenance  of the project and also for the future development. And therefore, we target a broad contribution  basis between the user group so that the level of contribution is kept, are kept as low as  possible. And still, the contribution are on free basis. No one is, there is no mandatory,  you can be in the user group and not contribute financially. It's not mandatory. But in the  overall, this community function as is, and since 2011, we could develop two major version  of Geomapfiche, one based on GeoX and was based on Angular.js and seven minor version  with each time new functionalities. So, how is the user community built? It's different.  It's a public sector. It's private organization. They all have in common the goal to publish  so GeoData so that the public engineer or other guys can do geospatial analysis on  a WebGIS. And all this community, they need a WebGIS for this. So, we have cantonnes,  so like regions in Switzerland. We have communities or groups of communities. We have cities using  the software. We have engineer offices. We have facility management, also like Lyon  airport or the EPFL in Lausanne. And one of the interesting thing is that is this collaboration  between different kind of users make that the requirement, the design of the specification,  the design, all this ensure that the result is practical, it's usable, it's practice-oriented  because we take care of all these requirements. And of course, we have a broader collaboration  as we use open layers. For example, in Geomapfiche, we collaborate then also with national agencies  in developing open layers, for example. So, what are the software architecture concept  we have in Geomapfiche in this WebGIS? First, we target, we want, we like that the architecture  is coherent. We don't want to have to configure the WebGIS in multiple places. So, our paradigm  is we use one cartographic engine and we will configure in this cartographical engine the  layers, the queries, the legend. So, everything is configured in the map service and POGC  is sent to the client. So, all the map is configured in one point, it's in the backend.  And in the case if you use QG server, QG is QG server, you also can reuse the configuration  you've done on your desktop GIS for the server part. Then in each WebGIS, there is a search  tool, so you can search for data, you can search for places. And here, our basic idea  is we have one full-text search table in PostgreSQL and all the data you put in this table  will be accessible in the full-text search. So, it's very easy to handle the search.  And then we provide an administration graphical user interface to define the structure of  the layer tree to configure the security. In this, with these different kind of users,  we still need, it's an application, but this application needs to be configurable. Each  one has, should have a choice about the layout, how it will look like and to activate the  activate functionalities or to enhance the application with his own features. And here,  our architecture is very, I would say it's mature because it allows to enhance the application  without forking the basic common source code. So, you don't need to fork and this makes  that updates then are kind of easy. I said there is a security proxy and so you can also  restrict access to some layers or features or attributes within the WebGS. So, this is  a table of all the features that geographic GIS GIS features that have been implemented  to see that it's a broad, we have a broad perimeter. And the architecture, as I said,  we have PostgreSQL. We can use different cartographic engines like we use OGC norm. So, it functions  with GeoSev and MapSev or QG server. And the GeoMapFish application, it's based off  a backend in Python and a front end with open layers and Angular.js. So, how does it look  like? This is version one. We are about to release version two. So, this is version one.  You have a classical WebGS user interface and of course we use WMTS for the background  data. So, we saw, for example, a slider that allows to change or to adjust the opacity between  different layers. We have a team organization that make it easy for no experts person to  access to some specific preconfigured maps with, for example, yeah, historic data or  poise or cadastral. So, this kind of information. Of course, there is a layer tree. All these  things about WebGS, they are implemented. We've seen this is a kind of mandatory feature  in WebGS. We have dynamic legend. So, this means once you have configured your WebService,  WMS, WFS, you also get, get legend graphics, a dynamic legend that takes care of the zoom  level. So, each time if you feature a feature type appear at a certain zoom level, the legend  will update itself. And we do have a different kind of queries. So, you can query per point  or per, per B box. So, WMS or WFS query and display the result in a pop-up or the same  point or B box query and display the result in a grid with the data structured in different  tables according their layer origin. We do have a search. I said everything is configured  in the PostgreSQL full text search table. And here you can have the results either grouped  in different topics like a commune's address or different point of interest or everything  in the same more in the auto completion mode. And this works well. You can put also a lot  of data in the, in this table and search for addresses, search for parcels, search for  anything. You can draw red light, do some redlining on the, on the map with point lines, polygons  and then change the color, change the size, put some text on it. You can print with the  map fish print component which allows to select the zone to, to rotate the, the, the bounding  box for the print. And you get either a PNG or a PDF file. In the, in the current version  we use a map fish print and we use Jasper report. This means you can also, beside the  map access to a lot of data that would be in your database or in your, in your environment.  So you can generate proper reports. Like these can, these two examples. If, for example,  natural hazard, we use it also to generate reports about street work authorization in  case you need to dig holes in the, in the street. It can, there is a lot of possibilities.  And here just an example about the security. Once you are, you can be either anonymous or  you can log in on once you are, you are logged in, you have, for example, access to more  data sets. Here an example of also an elevation profile. Or you can do also complex queries  and exports. Also based on WFS queries. As we have also customers in the facility management  area, like the EPFL or the airport. We have a floor slider. This means you can adjust  on the, with the slider on which floor you want to display the, the map. And of course  in version one, we have a mobile layout that use the same configuration that allows geolocation.  And so it's also mobile compliant. It's multilingual. We have the graphical user interface to configure  the layer tree, the security. You have an edit, geolater edit interface where you can  draw points, line, polygon. There you can snap on, on the lay, on, on, on the laying  WFS layers. You can also access to some predefined values in your drop, in your list. So some  keys are possible for, for the, the possible values of some fields. Also, for example,  dates or some nice widgets allows to an economical edit. There is a routing engine with open  street map routing. And this, this WebGIS also provide an API like the Google map API. This  ensures that you can, once you have built your WebGIS, you can also pair the API, integrate  it in another content management system. So the, the, the value of your work, of your  data is, is higher because it can be used not only in the WebGIS, but also in partner  websites. Then you can customize the view to simplify it or you have the standard viewer.  And as an example here, different OGC servers integrated into Geomapfish. So that was Geomapfish.  Now I would like to present in short what we, the new version, Geomapfish 2. It's about  to be released. Actually, it's released as a mass, on the master branch of Geomapfish  on GitHub. But we, we are about to have the first beta tag saying the version is complete.  Now we are in the quality insurance phase. So what's the difference? We would like, we  wanted to target a total universal application or a responsive application. So it should  run everywhere with just one code base. And so also take part of, you take use of Open  Layer 3, which is much more powerful than Open Layer 2. So we use Open Layer 3 Angular.js  bootstrap. And in order to build a modular software, we, we designed in the middle NGEO,  which is a library combining Open Layers and Angular.js into directive. So you have functional  modules. You can reuse very easily, like GeoX components, but based on Open Layers and Angular.  On the server side, it's an update of Geomapfish 1. So there is no major change on the server  side. If you have all the data you have configured in Geomapfish 1, they are still configured,  rightly configured for Geomapfish 2. So we use OTC protocol and the MAPFISH protocol  in some cases, like for, for edit. We use the Pylon, Pylon framework, like Pyramid.  And we use the Closure Compiler in Advanced Mode, which ensure that the JavaScript part  is very, very well optimized. And as it's, it's kind of a huge programming effort, we  also have a lot of continuous integration, continuous integration test, so that we can  ensure a good quality. So I would like to just to focus on NGEO before  going more on Geomapfish 2, because as this provides, atomic components, this also allows  to build synergies between different kind of application. For example, we have NGEO,  but NGEO is used in Geomapfish, but it's also used in GeoNetwork. It can be used in other  WebGS application, the components. It allows to build your WebGS, not starting from scratch.  So the library is structured like with a core, with different core directive, and then contribs,  and with Geomapfish, we added the Geomapfish, the Geomapfish contribs in NGEO, sometimes  enhancing the core components. If we just have a quick look at it, you'll  see that the functional part of Geomapfish, so the NGEO library, it's already kind of  a lot of work has been done with quite a lot of contributors. And you have, so everything  here with, for example, if you go in the source code, you'll see the directive, and here all  the plugins that make it easy then to build WebGS. So something like about the layer tree,  the grid pop-up, profile, all this kind of information is already combined between open  layers and Angular. And so in Geomapfish, we use this, add more contribs, add more directive,  and if you go in the examples here, for each directive, you have an example, and if I go  to, for example, to the profile, profile directive, here for profile example, you have, for each  directive, you have an example, and here you can see it's, there is not the layout, it  will be done in the integration part, but still the functionality to have a dynamic  link between your profile to display the profile and the map, it's already implemented. So  you can use it in Geomapfish, we use it like this, but it also can be used in other WebGS  applications based on open layers and Angular. So this is the new layout, it is a slightly  new version from the previous one, it was this design in collaboration with our users,  and one of the focus was we didn't want it to get, to lose them in this process. So it's  slightly updated, but it's not a total different layout, so the users are okay. So we have  the layout desktop, we have a tablet, UI, and a smartphone UI. So with the same code  base and two different HTML gabarit, we can target these three kind of devices. And then  the new implementation of all the features we had, with new features like drag and drag  because the new frameworks allow this, in the electric we have the time slider to filter  on WMS time, for example, the search result in a grid is always there. The print is now,  it's also implemented, measure redlining. With a new feature in this case, we had measure  and redlining in Geomapfish one, and now it's the same features. When you draw a point,  you get also the coordinate. When you draw a line, you also get the distance. So all  this measure and redlining is now one tool. Elevation and leader profile is always there,  edit snap update with action on the features, it's there also. So a lot of everything has  been migrated and it's about to be released as a beta version, but you can also already  check the examples online. And once we have done this 2.1 version, we're going to add  free views with cesium, we'll work on a more tighter integration with QG server, and I  guess we also try to integrate with Geo-Orchester, the inspire special data infrastructure.  So if you want more information, go on geomapfish.org, go on GitHub. The source code is there, you  have, you find demonstration, online links of online web.js, you can visit us at our  both. And if you want to practice, we are hiring, so just come and see us. Thank you  very much.  Thank you, Emmanuel. Thank you for your time. Questions please? Yes?  In the security you mentioned, you've been isolated by nature and by attribute. Is there  a way to isolate by client? That is, there are two logins on the same application, two  logins by people from two different companies, see different data?  Oh, yes, yes. So you have users and roles, and you can say, for example, this role, he  access this layer or this perimeter within this layer. And some, another person from  another role access, for example, the same layer, but another perimeter, for example.  We use this, in case we have multiple surveying offices working together, exactly, they build  one web.js, they have one, for example, cadastral layer, and then each of their client has its  own login, and then see only within the polygon of the municipality, for example.  More questions? Yes, please.  Do you have some, do you have any questions?  So we don't have, ah, yes, the question. Yes, I'll repeat the question. Do we have plans  to combine it or to upgrade it to Angular 2? Or are there other possibilities of combining  Angular 2 and open layers? So, about the geomapfiche, at this stage, there is no current plan to  go to migrate to Angular 2. We have a roadmap with our users. The users have founded this  version of geomapfiche with Angular 1. And now they need the time to migrate the application.  They have also their plugin. So it's a collaboration. As long as there is no major technological  improvement which benefit for the users, I guess we'll stay on this version so that it's,  we have kind of a return on investment about this technology migration. And about open layers  3 and Angular 2, we have a customer who has started such a project to build, to use these  two libraries together. So it should work, yeah.  Why did we choose Angular? So we choose Angular. So we were using GeoExtra. And there was this  need of a responsive web map. And this, I guess, nearly two or three years ago, two  years ago. And so, at this stage, Sencha didn't provide this environment for responsive, so  universal at that time. So we looked at what was existing in the responsive world and decided  to use Angular. And I think we are pretty happy with this choice.  Any more questions? So thank you very much for attending this session. This is the last  presentation. You can move to other rooms. Thank you very much.
foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_0_227.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_228_1163.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_1164_6431.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_6432_6599.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_6600_14015.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_14016_17495.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_17496_20123.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_20124_21251.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_21252_21347.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_21348_21719.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_21720_25427.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_25428_27635.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_27636_29603.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_29604_32507.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_32508_33491.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_33492_33899.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_33900_33959.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_33960_34439.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_34440_34919.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_34920_35495.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_35496_35735.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_35736_36431.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_36432_36959.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_36960_37079.png foss4g-2016-1286-geomapfish_2_-_ready_for_the_future-hd_37080_38083.png