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

MapFish Framework

00:00

Formal Metadata

Title
MapFish Framework
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
The MapFish framework allows to build rich Web GIS Applications in an easy and flexible way. It combines some of the best Open Source Tools in one framework: OpenLayers 2, ExtJS3 and GeoExt4 on the client side, and MapFish print, Ruby or Python modules (especially Papyrus based on Pyramid) on the server side. Besides the OGC-Standard web services, a MapFish protocol adapted to the efficient communication between Client and Server is available. On this basis, complex and high performance web mapping applications have been built. Among them, one MapFish-based project will be presented in more detail in order to show the power of the MapFish Framework: the c2cgeoportal is a complete WebGIS with large set of tools and configuration options. Since its beginning, the plug-in based architecture makes each application unique and adapted to the specific use case. The presentation gives a general overview of the MapFish Framework and demonstrates its possibilities with the c2cgeoportal implementation.
Software frameworkComputer architectureComponent-based software engineeringStaff (military)Open sourceInternet service providerAverageText editorInformation technology consultingImplementationDivision (mathematics)Value-added networkServer (computing)GeometryExt functorLibrary (computing)Java appletWide area networkCommunications protocolConditional-access moduleArchitectureClient (computing)Finite element methodArmLevel (video gaming)Plug-in (computing)Newton's law of universal gravitationMathematicsService (economics)Letterpress printingTouch typingMeasurementUser profileQuery languageComplex (psychology)LoginWindowNetwork topologyAuthorizationPhysical lawElectronic meeting systemMetropolitan area networkUniform resource nameTouch typingLetterpress printingBitOrder (biology)Generic programmingWeb 2.0Library (computing)Plug-in (computing)Internet service providerQuery languageMilitary baseGroup actionConnectivity (graph theory)MereologyCommunications protocolSoftware frameworkSoftware developerProjective planeClient (computing)Server (computing)Cartesian coordinate systemInformationDivisorAttribute grammarState of matterMultiplication signImplementationPhysical systemWave packetOpen setParallel portDifferent (Kate Ryan album)Demo (music)Uniform resource locatorField (computer science)Computer architectureResultantImage resolutionRight angleOpen sourceLevel (video gaming)Physical lawLinearizationHypermediaView (database)Matching (graph theory)Computer-generated imageryComplex (psychology)Set (mathematics)Metropolitan area network2 (number)Presentation of a groupSoftware testingProcess (computing)Line (geometry)Domain nameSystem administratorInformation technology consultingVirtual machineLattice (order)Chaos (cosmogony)Video gamePoint (geometry)Computer animation
Query languageUser profileConvex hullMobile WebMobile WebParameter (computer programming)Line (geometry)Interface (computing)DatabaseWeb pageComplex (psychology)Query languageFlow separationCombinational logicAttribute grammarProfil (magazine)Set (mathematics)SubsetMatching (graph theory)Local ringComputer animationProgram flowchart
Level (video gaming)Maxima and minimaOpen sourceComa BerenicesWeightValue-added networkGeometryLevel (video gaming)Open sourcePresentation of a groupProjective planeImplementationWeb pageFeedbackCartesian coordinate systemLogic gateTape driveMatching (graph theory)Point (geometry)Queue (abstract data type)Metropolitan area networkMoment (mathematics)CausalityComputer animation
Uniform resource nameConditional-access moduleRoutingLevel (video gaming)GeometryPlanningMultiplication signConnectivity (graph theory)Latent heatSoftware developerQuantum gravityBitTheory of relativityOrder (biology)Plug-in (computing)Set (mathematics)INTEGRALLibrary (computing)Open setFront and back endsBootstrap aggregatingCartesian coordinate systemRevision controlHydraulic jumpWeb 2.0MereologyStatisticsAreaCore dumpVisualization (computer graphics)2 (number)Standard deviationFunctional (mathematics)ImplementationProjective planeInteractive televisionScaling (geometry)Physical lawNetwork topologySoftware frameworkReading (process)Extreme programmingVideo gameDataflowEvent horizonArithmetic meanLevel (video gaming)CASE <Informatik>Physical systemDefault (computer science)Slide ruleStopping timeDrill commandsFigurate numberTerm (mathematics)FreewareReduced instruction set computingUsabilityCrash (computing)QuicksortSpectrum (functional analysis)Right angleMatching (graph theory)Program flowchartComputer animation
Conditional-access moduleRoutingLevel (video gaming)Invertible matrixNewton's law of universal gravitationMach's principleGrand Unified TheoryQuery languageImplementationAreaWeb 2.0MathematicsOpen setLibrary (computing)
Transcript: English(auto-generated)
Yeah. Okay. Thanks. Is this on? I don't know. I don't know if it's on or not. It's coming. Okay. Great. Okay. So, welcome to my presentation.
I'm sorry for the slides, I don't get to set the resolution right. But I'll just give you in the beginning a short overview. After presentation, I'll very short just introduce myself and Camp2Camp, the company I'm working for.
And then I'll give you some introduction about Mapfish, about the framework, its architecture, and the second release. And then in particular, I will go into one of the implementations, which is a full-fledged web TIS, known as C2CTO portal.
And I'll show you some other examples. Yeah, just for some ideas about it. And I'll talk about upcoming developments and give an outlook. So, Camp2Camp, we are an open-source solution provider of about 45 from Lausanne, Switzerland.
And we have also some one-parties in Germany, France, and in Vienna. We are working in the geospatial domain, but also in business EOP systems, in infrastructure, for system administration,
and doing implementation, a lot of implementation, a lot of consulting, support, and training in that domain. So, what is Mapfish? I don't know if you heard about Mapfish before. Who did before?
Okay, still some, so you know a little bit. So, at least. So, Mapfish is a web TIS framework. It's a component-based. So, they are on the server-side components in Python or Pyramid Python, in Ruby, and PHP, Java, and so on,
all the libraries, TRL, Kami, JPL, itext, et cetera. And on the client-side, there's a TRX component with Open Layer and XTS. And it is open-source, an official OSTO project.
Yeah, so the architecture, as I said, there was like, there's a client part with XJS and Open Layers. It's communicating with the server via Mapfish REST protocol, which is JSON-based,
and well, in parallel to the OTC protocols. And on the server-side, we have those different components in Python, PHP, et cetera. So, the second release,
there's a demo on mapfish.org. I will put the URLs in the very end so you can maybe go and have a look. It shows just some simple application you can do with it. So, you can have information about some features,
about factor features. You have editing tools. You can implement the search tool. You can print, Mapfish print is one of the major components. Yeah, so you can, with the editing,
you can insert like the attributes. You can have dropdowns, et cetera. So yeah, that's the state of mapfish.org. In between, there was some time passing and we developed further application with that framework
and we integrated other components. We, yeah, we did some implementations and among those, there's the Mapfish Web GIS, also known as C2C GeoPortal.
And this one is kind of interesting because it's plug-in based. It's not a framework anymore. It's a full web GIS and you can choose your tools, what you want to use, what you want, how you want to arrange your tools, et cetera.
So, I'll go a little bit into that one. So, as I said, it's a generic web GIS. It's plug-in based. It's adaptable and extensible, so you can write your own plug-ins. There are a lot of tools available and there's a user group supporting that
and pushing that forward so other tools get integrated, et cetera. So, the architecture stays more or less the same except that there are some parts which got developed a bit more.
Like the CGXP, it's a development from GeoX towards more functionality. There was the central touch we integrated as well along with XJS for the mobile part.
And on the server side, we used mainly Python libraries and the Mapfish print. So, how does it look like? One way it could look like when you're setting it up, it's like this.
So, you have a panel on the left side. You can have a themes panel with different layers where you can arrange them. You can change the order of the library of the layers and you can have other panels
like the query or print tool, et cetera, on that side. You have a lot of tools up on the top panel. And yeah, some map tools around.
Yeah, like changing background layers, et cetera. Yeah, so a lot of tools. I won't go into all of them because yeah,
as you tried yourself or yeah, you ask questions for a demo or something afterwards. But I will talk about some of them. So, there's full text search. You can configure your search fields or yeah, your search fields from PostGIS, Postgres.
And yeah, you can search for them. You get the results immediately afterwards. Yeah, if you want to do some more complex, if you want to have some more information about some features, you query them.
You get the results from several layers. You can show them, you can select them. You can also export them to CSV. Yeah, or even you can do complex queries with several combinations of attributes
and spatial restrictions. So, you select a layer. You choose how it should match, if there should be everything combined and like the subset of this combination or if just one of those arguments should be respected.
And there's also profile plugin. Yeah, you can choose your profile line and then it shows the height profile.
You can have an editing interface where you can add data to your Postgres database and have the restrictions about some attributes, et cetera. And there's an API also included.
So, you can integrate that in other pages or you can, with your geoPortal set up, you can give that to others or yeah. And there's a simplified mobile interface
for small mobile devices. It works in general also on mobile, but if the device is too small, the simplified interface is like easier to handle. Yeah, so there are many, many examples already in use.
I would recommend you to have a look at them. But of course, you can also do your own. It's open source. Yeah, just have a look at the GitHub page. Have a look at the documentation. Try it out.
Give feedback if you find something. And yeah, so I will just show some other implementations about the Mapfish project.
There's for example, map.twicemobile.ch. It's a futuristic application which was made with the basic Mapfish framework or like the map.geo.admin.ch from the Swiss Topo implementation
where they are doing a redesign. Maybe you saw the presentation of Cedric Moulay yesterday, I think. And yeah, like a campus plan of the University of the Technical School of Lausanne.
Or also time related data, which is shown here between some time space, you can animate that and integrate that into your web GIS. So where are we going?
For the Mapfish web GIS, we will have some features. In the next time, which will be coming up. So we will integrate the snapping for editing. We will add a routine based on OSRM.
And yeah, integrate the time slider to have the time component in that web GIS. And we are working hard on a QG's backend. So you could configure your layers in QG's and configure the styling and then publish them
to the web GIS. And on the long run, we are looking forward to open layer three, integrating that into the web GIS as well. So yeah, I didn't, I was really fast. Sorry for that.
But thanks for your attention and yeah, if you have any questions, just feel free to ask. Thank you very much. Questions? 15 minutes of them. Yeah. I was interested to see a little bit about the time,
the time thing. And could you tell a little bit more about that? And also, when you're planning to publish that time slider? So I should repeat the question, I think. Okay, so the question is about the time, the time component of the time slider and when it will be implemented.
So the time slider is based on the WMST specification. So we will integrate that way of publishing time.
So I think the first implementation will be like towards the end of this year or the next, or the beginning of next year. Like the basic implementation and then probably
during the first half of the next year, there will be the further on developments for interaction with it. But I think it will be something similar to this application where you can choose your time scale or like the start time and the end time
and then you can animate through it or you can slide through it. So this is already an existing feature? Okay, is it like a plugin? This one is based on the Mapfish framework, so it's not yet like a plugin into the Web GIS,
like the existing, the full-fledged one. Yeah, the full functionality Web GIS. But yeah, we are trying to, we are going to integrate that into the.
Does the Web GIS also have a geo-statistical plugin? Like, yeah, like, like CartoReb?
No, so in order to show like, yeah, like data and visualize data with, yeah. There are some plugins which exist,
which are not yet in the main project, but which might get integrated because they have to get generalized for the main project. But like you can select, for example,
a data set and one data and you get like statistics about how much or one area and you get statistic how much coverage is in that area and so on. But it's in the beginning, it's not yet, it's not as the core application
is not like geo-statistical visualization. Which version of GeoX are you using in this view? And second question, how do you contemplate the fact that GeoX may not integrate of the LAS-3 anytime soon?
So what version of GeoX are we using and how will we contemplate about the fact that GeoX won't be integrating Open Layer 3? So actually the CGXP is a deviation of GeoX,
so we are not exactly using GeoX from it, but we got inspired by it and use it like similarly to GeoX. But on the long run, when we will integrate Open Layer 3,
it will probably be with another library. So, bootstrap or I don't know, still to be defined. And which version of GeoX are you using in this view? It's X3. Still X3? Yeah, yeah.
No, and probably, yeah, probably never, we will stay on X3 and then make the jump to Open Layer 3 with another library. Do you think that by using another library, end-user applications can become lighter? And was that part of your?
Yeah, so actually, why? So yeah, in general, we will stay for some time still on the X3 basis, but probably the reason why, one of the reasons why we consider going
to another library is because the cross device is handled easier or like it's really one, there are a lot of libraries coming up which handle the cross device aspect. So probably cross device is the reason,
but also like lightening up and arranging, yeah, easening the usability, sure, yeah. Just to be above about GeoX for sure, on this Friday, no it wasn't Friday, so.
I was there. Oh, you were there, so you already know, I suppose, that they will mostly switch to Angular. I'm not sure. Not, yes, but the implementation in Switzerland,
in the GeoPortal is already using Angular. Yes, but if we can't continue, I don't know. We have plenty of time, so. Okay, so the discussion yesterday was not conclusive at all and different agents are going for it, different libraries, so most likely
territories will continue using GeoX and then GeoX, which boundless seems to be going for those.
Yeah. Yeah, this one is based on Angular bootstrap, yeah. Yeah, yeah, that's true, but it's like, it's going towards this direction,
but for like the Web GIS, the Mapfish Web GIS, we are not really, we wouldn't say yet that we are really taking this library. We are still evaluating and probably it will be this one, but maybe we could also stay with X, it might be.
It depends also what the needs are. Are you coordinated?
If you are coordinated between open layer three and Mapfish. Yeah. Yeah, sure. Yeah, so, well, with open layer three, we do a step further with developing,
so we're breaking the API, so when like the Web GIS implementations are kind of coming afterwards, so as soon as the API is fixed, we will for sure change and go towards open layer three,
but yeah, it's not like one day after another. Yeah. Anybody else have a question? Okay.