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

MapStore: Modern mashups with OL, Leaflet and React

00:00

Formale Metadaten

Titel
MapStore: Modern mashups with OL, Leaflet and React
Alternativer Titel
Introduction to MapStore, mashups made simple
Serientitel
Anzahl der Teile
295
Autor
Mitwirkende
Lizenz
CC-Namensnennung 3.0 Deutschland:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
MapStore is the Open Source product for creating, saving and sharing in a simple and intuitive way maps and mashups created selecting contents from public services like Google Maps and OpenStreetMap or other servers implementing OGC and ISO protocols. Thanks to MapStore the user can mix her own data with data available on the web to create comprehensive maps and share them with anyone (also via social networks). MapStore2 is cross-browser, and mobile ready. MapStore allows the user to: * Manage maps (share, delete, search, create) and users through a front-end Manager. * Create and navigate maps using a powerful and intuitive front end as map Viewer. * Manage the embed-link, marker's injection, routes injection, time series Google Earth like, spatial queries and more. * Interact with one or more Catalog Service for the Web (CSW). You can also use MapStore as a framework to develop your custom WebGis application composing MapStore ReactJS components and components from other libraries (like React Bootstrap), choosing the best mapping library for your purposes. The presentation will give the audience an extensive overview of the MapStore functionalities for the creation of mapping portals.
Schlagwörter
129
131
137
139
Vorschaubild
28:17
Lipschitz-StetigkeitInformationsspeicherungBitMomentenproblemXMLUML
Coxeter-GruppeBitSoftwareDebuggingWeb ServicesVorlesung/Konferenz
RechnernetzClientServerJava EnterpriseAppletVisualisierungDatenfusionBildverarbeitungInformationsspeicherungTextur-MappingCoxeter-GruppeProdukt <Mathematik>XMLUMLComputeranimation
SoftwareentwicklerTextur-MappingRahmenproblemWeb SiteCoxeter-GruppeInformationInformationsspeicherungKartesische KoordinatenGebäude <Mathematik>MAPProgrammbibliothekQuick-SortWidgetBenutzerbeteiligungKrümmungsmaßXMLComputeranimationUML
SoftwareentwicklerFramework <Informatik>InformationsspeicherungSoftwareentwicklerKartesische KoordinatenGebäude <Mathematik>Mailing-ListeTextur-MappingProzess <Informatik>XMLUML
GammafunktionVollständigkeitGeradeEinfache GenauigkeitComputerspielProdukt <Mathematik>ZweiSoftwareentwicklerWiederkehrender ZustandCodeOpen SourceMapping <Computergraphik>Computeranimation
KonfigurationsraumProdukt <Mathematik>Elektronischer FingerabdruckCASE <Informatik>Elektronische PublikationKonfigurationsraumBitSichtenkonzeptIdentitätsverwaltungStichprobenumfang
DimensionsanalyseAxonometrieWeb ServicesIntelDruckspannungDesintegration <Mathematik>WidgetTemplateTexteditorTextur-MappingInformationsspeicherungStandardabweichungMapping <Computergraphik>ImplementierungEinsMailing-ListeFunktionalNP-hartes ProblemIntegralZusammenhängender GraphMultiplikationsoperatorProjektive EbeneDimensionsanalyseIdentitätsverwaltungComputeranimationXML
Hausdorff-DimensionOrtsoperatorAnwendungssoftwareServerInklusion <Mathematik>MarketinginformationssystemTime line <Programm>MultiplikationWeb ServicesDimensionsanalyseMessage-PassingKonfigurationsraumDateiformatPlug inProdukt <Mathematik>MultiplikationsoperatorATMSpannweite <Stochastik>Quick-SortVollständigkeitMaßerweiterungServerOrtsoperatorMereologieFunktionalWeb logMetropolitan area networkBildschirmmaskeInformationsspeicherungComputeranimation
MultiplikationsoperatorProjektive EbeneRechenschieberComputeranimation
Ein-AusgabeNormierter RaumAxonometrieRechenwerkMIMDGammafunktionSpannweite <Stochastik>EntscheidungstheorieMultiplikationsoperatorKrümmungsmaßTypentheorieTextur-MappingProjektive EbeneDifferenteAlgorithmusComputeranimation
AxonometrieDienst <Informatik>ServerProjektive EbeneProgrammbibliothekElektronisches MarketingÄquivalenzklasseWeb SiteMultiplikationsoperatorFunktionalWort <Informatik>DifferenteFront-End <Software>ClientExistenzsatz
CodeAxonometrieProjektive EbeneEinfügungsdämpfungEinsOrtsoperatorBenutzerbeteiligungCASE <Informatik>Gewicht <Ausgleichsrechnung>Kartesische KoordinatenCodeMailing-Liste
KreisflächePolygonGeradePunktTexteditorServerElementargeometriePunktDienst <Informatik>Hintertür <Informatik>ImplementierungClientWorkstation <Musikinstrument>Konfiguration <Informatik>TermBeobachtungsstudieTypentheorieMereologieFunktionalTextur-MappingVektorraumSymboltabelleGüte der AnpassungComputeranimation
SystemverwaltungAggregatzustandTexteditorCross-site scriptingMereologieTemplateStichprobenumfangTexteditorGraphfärbungFunktionalComputeranimation
FontTexteditorServerDienst <Informatik>StrömungsrichtungServerRichtungTexteditorREST <Informatik>VektorraumÄhnlichkeitsgeometrieRenderingWeb SiteProgramm/QuellcodeComputeranimation
WidgetDigitalfilterKonfigurationsraumDesintegration <Mathematik>ViewerInformationAttributierte GrammatikAbfrageHausdorff-DimensionNavigierenCachingTexteditorAchtTabelleOnline-KatalogWeb SiteBenutzerhandbuchIntegralTextur-MappingNichtkommutative Jordan-AlgebraProdukt <Mathematik>ElementargeometrieHyperbelverfahrenMultiplikationsoperatorElektronischer ProgrammführerClientFunktionalFortsetzung <Mathematik>Quick-SortTermPunktKonfigurationsraumComputersicherheitProjektive EbeneOrdnung <Mathematik>BootenKollaboration <Informatik>Interface <Schaltung>CASE <Informatik>WinkelVollständigkeitDifferenteInformationsspeicherungGenerizitätFilter <Stochastik>WidgetAttributierte GrammatikVersionsverwaltungSichtenkonzeptTabelleTexteditorXML
ServerDruckspannungDesintegration <Mathematik>Lesen <Datenverarbeitung>Web SiteKartesische KoordinatenBenutzerbeteiligungSoftwareentwicklerElektronischer ProgrammführerInformationsspeicherung
MultiplikationDesintegration <Mathematik>InformationMaßerweiterungMaßerweiterungDimensionsanalyseAggregatzustandRhombus <Mathematik>Profil <Aerodynamik>FunktionalMultiplikationsoperatorMetropolitan area networkPlug inXMLComputeranimation
Integriertes InformationssystemTextur-MappingTexteditorFunktionalPhasenumwandlungPrototypingProdukt <Mathematik>ImplementierungUmsetzung <Informatik>InformationsspeicherungMereologieDateiformatSyntaktische AnalyseKollaboration <Informatik>MultiplikationsoperatorVektorraumBildschirmmaskeComputeranimation
Open SourceDateiformatMittelwertsatz <Integralrechnung>Cross-site scriptingVektorraumProgrammbibliothekDifferenteBenutzerfreundlichkeitOpen SourceFormale SpracheProdukt <Mathematik>Protokoll <Datenverarbeitungssystem>Einfacher RingAbenteuerspielTypentheorieDateiformatTesselationRenderingUmsetzung <Informatik>EinsVektorraumComputeranimation
Produkt <Mathematik>Mapping <Computergraphik>InformationMultiplikationsoperatorÄhnlichkeitsgeometrieGebäude <Mathematik>Computeranimation
AxonometrieFehlermeldungOpen SourceProjektive EbeneProgrammfehlerXMLUML
Mapping <Computergraphik>Elektronische PublikationSkriptspracheMultiplikationsoperatorInformationsspeicherungProdukt <Mathematik>MathematikOffene MengeComputersicherheitKonfigurationsraumIntegralMaßerweiterungGleitendes MittelAppletGruppenoperationFunktionalTextur-MappingSchlussregelServerGamecontrollerCoxeter-GruppeApp <Programm>Monster-GruppeSystemverwaltungOrdnung <Mathematik>Web SitePunktInterface <Schaltung>Plug insinc-FunktionFront-End <Software>Kartesische KoordinatenDienst <Informatik>GrenzschichtablösungBimodulVorlesung/Konferenz
Transkript: Englisch(automatisch erzeugt)
OK, so last talk in this session by Mauro about Map Store. And yeah, I'm sure you can present your own better than I can do it. Thank you very much.
So we are going to switch a little bit the topic. We are going to talk about the other side of the moon. You have seen probably many, many presentation about server-side software. Now we are switching a little bit to front end.
I work for G-solutions, but maybe you already heard of us during these days, especially if you followed Andrea's presentations. So what I'm going to talk about today, first of all, I will try to explain what is Map Store for the few of you
who didn't heard about this wonderful product yet. And then I will try to show you what we did last year on the product, and then what we want to do next year and in the future in general about Map Store.
So what is Map Store? This is the website. So if you want to leave now and want to follow my presentation, just go to the website and you will find any possible information. But if you want to hear something directly from me, so Map Store is two different things.
The first one is its framework aspect. So it's sort of a library that you can use to build web GIS and mapping applications. If you think of Leaflet, OpenLayers, MapboxGL, those are libraries that allow building mapping applications too, but I would say they are sort of low level
libraries, while Map Store tries to be something on a higher level that uses all those libraries but adds more widgets and tools that allow to do complex things in a simple way.
So since it's a framework, if you are a developer and you want to use it to develop your own application, you need some basic knowledge on the technologies that Map Store uses. Here you find a list of the most important ones, in particular, React, GIS, and Redux.
But if you are not a developer and you also want to develop an application, you can ask for someone else to develop it for you, like us. We are a company that develops using Map Store, so we are available to build application with Map Store for you.
And also, if you are familiar with our technologies and you would like to contribute and to use Map Store, or you would like to change your job, just send your resume, because we are always looking for new developers to grow our team. But then there is the second life of Map Store as a product.
So if you are not a developer and you just need something to publish your own maps, you don't want to write, or you are not able to write a single line of code, you can use Map Store, too, because it's
a complete product by itself. You can use it as it is. It's open source, completely open source, so you can just download it from our GitHub repository, get the final binary package and install it and just use it. Or you can customize it a little bit
without being a developer, just editing some configuration file or even using our administrative UI in some cases. Now, what did we do last year? What are the new fancy features of Map Store that we worked on in the last 12 months?
This is a short list. We worked a lot on dimension handling in particular time. So we had the ability to work with time in a very simple way for your WMS or WFS data. Since we were there, we are also
advertising the ability to work with other dimensions like elevation. We also worked on projections. Projections were supported by Map Store from the first implementation, but they were not advertised a lot because working with projection,
we will see is a little bit hard. So just recently, we exposed this kind of functionality to the final user, and we will see how it works. Then we also worked on the annotations, so the ability to draw on a map and store your personal notes on a publicly-available map.
And another couple of things, the two main ones are the GeoNode integration. If you know about the GeoNode, you also may know that it has a mapping component for a lot of functionalities like composing your maps
or just navigating them. We are offering now an alternative using Map Store to the standard mapping capabilities of GeoNode. So the ability to replace the basic functionalities with another implementation done with Map Store. We are also working on styling.
It seems that styling is a new thing this year. So we are also working on a styler. So the other important things I would like to mention is documentation, because this is becoming important. And this is the first year I can say we have some documentation.
Last year, I had to say we are working on this year. I can say we have one. OK, let's start. So with the first topic in our dimension, in Map Store, you have the ability to work with the WMS layer published by GeoServer or any other OGC WMS service that
supports dimensions and work with elevation. So you can filter using the elevation dimension and see your data moving a sort of slider to change the current one. You can also use elevation for other purposes.
For example, to have position together with elevation as you move in the map. And also in 3D mode, because Map Store also has a 3D mode using season JS, you can use elevation data to build your own terrain
model using your dam together with your server. In this case, that has a plugin for publishing elevation data compatible with the season JS format. We also have a new and fancy time slider, complete time slider that you can use with WMS time
enabled data to do all sorts of things like just moving on time, doing range searches and filters, and also playing animations with your time enabled data. It requires currently an extension of GeoServer
to work completely. It's called the WMTS multi-dimension plugin. With this plugin, you get all the functionality. Without, you get only limited one. So I suggest to include it in your GeoServer configuration. This is just a quick example of what
we did with the time sliders, so showing metadata data along the years. Then talking about projection, what if the world is flat? I put this slide just as a desire, because projection usually are complex things to handle.
So maybe it would be better if just the art was simply flat, but unfortunately, it is not. And we have to make the world flat for our purposes. At least 90% of the time when we want a two-dimensional map
instead of using a globe like the season JS one. So we have to deal with projection. And the other problem is that humanity invented a lot of different projection and used a lot of them during the years. So we have to handle a very wide range
of different algorithms and projection types. And this is not very easy. This is the reason why we are exposing this kind of functionality just now, because a lot of projection exist. They are all different and have different kind of issues.
There are a lot of libraries, both on the server and the client side, to work with projection to convert coordinates between one projection and the other. In particular, for JavaScript, we have ProJ4JS that is the equivalent of ProJ4 in the back-end world. Also, OpenLayers is well-integrated
with these kind of libraries. We also have back-ends like a GeoServer that can work with many different projections. But any time you choose to go with a different one than the usual web market or even WGS84, prepare for some pain and prepare to work a lot to make
your different projection work. For now, you can start using them. In MapStory, it's very easy to add new projection just using the usual ProJ definition that you can find on the web very easily.
So you can define your own projection, even ones that are not officially listed with the NPSG code eventually. And then you can apply the usage of your projection to a list of tools that support them. In particular, we implemented a new selector
that allows to switch between different projection directly from your application. This is the first one that I want to show. And then also other tools that can show coordinates, for example, the mouse position one that shows the current position when
you move using the mouse, can show coordinates in different coordinate systems, so you can enable your preferred one also in this case. Good. Then another important tool that we introduced recently are map annotations, so the ability for the final user to draw something on a map and save it for later usage.
In the first implementation, we just supported points with symbols. Now we support a lot of geometry types, in particular polylines, polygons, circles, and also text that you can put on a map. And we are also working on a style editor.
Styling options existed from the beginning in Mapstore, but were very limited. In particular, we have a simple styler for vector data that we imported in the client and the ability to switch between server-side styles coming from GeoServer or other WMS services.
And this is the basic functionality that we still have. But we also added the capability to edit styles in a similar way to what GeoStyler is trying to do. The workflow usually starts from the ability
to select some sample template styles so that you can start from something that is already part of what you need. Then you can use a simple text editor with some helper functionality, like syntax highlighting, auto-complete, and some tools like color pickers and stuff
like that. This is the second styler that we have introduced. And all of this is already available in the current release of Mapstore. And then we will see what we are going to do in the future.
Just to mention that this styler works in two different ways. It can work to edit server-side styles. So it can save your style on GeoServer using the GeoServer REST API. So you can edit your styles directly for GeoServer.
Or it can be used also for client-side rendering for vector styles and similar technologies. And then we have another couple of tools that we are introducing, like for widgets and dashboards. We introduce a widget trace so that you can expand
and minimize all the widgets that are available on a map. We also added the ability to do persistent filters. It was always available on the function to filter your data both on the map. So using WMS or on a attribute table view
using WFS filters or SQL filters with a visual composer like this one. Now this functionality can also be persisted. So you can basically create a sort of SQL views directly on the client, applying a particular filter that is always
used by the layer. Then we worked on the GeoNode integration. So from version 2.10 of GeoNode, you have the ability to switch the mapping engine to use Map Store instead of the standard one with a simple, very simple configuration.
And Map Store in this case is used in a lot of places with different UIs, obviously, because it depends on what you use it for. For example, for MapReduce, we have a very simple interface. We just navigation tools and the ability to print the preview. While when you want to use it for managing
and editing your data, you also have the complete attribute editor using WFST as in this example. We also have the terms slider functionality for time-enabled data, WMS in GeoNode 2. And the Styler is also available for GeoNode.
So all these improvements that went into the GeoNode integration are also available in the main product. And this is an example of collaboration between projects. So the Styler, the time slider were done basically because they were available
in the old mapping engine for GeoNode. So if we wanted to replace it with Map Store, we need to implement those kind of widgets. But now they are only available not only on GeoNode, but also for generic Map Store users. We also have the charts and widgets in the GeoNode integration.
And finally, we also have a new documentation website that you can consult. There is both a user guide, so for the final users that are going to use the product, and a developer guide for those who want to build
their own Web GIS application using the Map Store SDK. So for the future, what we are going to do from tomorrow? We want to improve the time and elevation support. In particular, the time slider will be able to work
also without the WMTS multi-dimension extension because time dimension is supported by WMS by itself. So the extension is only needed for advanced functionality, but for basic we wanted to use it without the plugin. And also for elevation, we would like to introduce
the elevation profiles capability. The style editor will include also a visual editor because for now we only have a text editor and we are evaluating some of the geostyler pieces to work also in Map Store.
In particular, we are currently working with the style converters that are good also for our implementation because basically the style editor was born because of some prototypes we did for the vector tiling work together with OGC. So we are moving out from the prototype phase now,
and we are going to implement the real functionality in our product. So this is the time we are looking for the technology we want to use. I think we will ask for a collaboration with Geostyler to improve the parsers because they have a good infrastructure to convert style from one format to another.
They need to be completed obviously because there are some missing parts and we would like to work together to do these kind of things for sure. And we will see also for the UI how the things goes eventually. But for sure, we would like to collaborate on the converters at least.
We are also working on vector ties. I already mentioned that. In particular, we are implementing support for different sources for this kind of data like WMS, WMTS, WFS3 also if it's mostly died, replaced by another protocol from OGC. And we also support the Mapbox vector tile format
and other ones supported by the libraries. For the styling, we would like to be, let's say, styling independent, so to support the different languages as Geostyler does. This is the reason why we are trying
to use the converters also in our product so that the user will be able to use styles in different languages like SLD, CSS, Mapbox, eventually others, and to switch seamlessly between server-side rendering and client-side rendering. This is the target of our prototypes, so we are going to move them also to production.
And finally, we started to build a different thing that you probably see from other vendors. There is an ESRI product that is very similar. It's called GeoStory.
And we are trying to build something similar with Mapstore. Not we are trying, we are building, we are implementing it right now, so it will probably out first quarter of 2020. It's a different way to use maps to tell a story, not just to show some information, storytelling.
And we will also work to improve all the things that we did last year with bug fixing and similar. Here you can find our documentation and other resources related to the project.
And that's all. Any question? Thank you. Juan, over there.
Hi. Since Mapstore is a very nice front-end for data published via GeoServer, and since you're doing a lot of work integrating the two, I mean, Mapstore and GeoServer, I've seen a lot of things from GeoFans that you presented previously about how you can have fine control over data
and which groups, which roles can see which geographic extent or whatever. If you integrate the two, is this still available? Can you still use GeoFans if you integrate strongly Mapstore and GeoServer? Yes, we also have an optional plugin
that is a UI to GeoFans, so you can control your rules, the accessibility of your data directly from Mapstore. So it's all integrated. Another target for Mapstore is to be a simplified interface for a complete infrastructure. So if you have GeoServer, GeoFans,
and a lot of pieces that you have to control and administer, we would like Mapstore to be a central point, at least for the most simple operations. So a center of control for administrator to publish your data, to control security, and stuff like that. We already have a tight integration between the security of Mapstore and GeoServer
that can be implemented very easily. And also, GeoFans is a piece that can be used together in a very transparent way. So what is the plugin called for Mapstore? It's the, I think it's rules, I can send you the exact name
because I don't remember exactly the name. It's just more a matter of understanding. You do Mapstore, I see Emmanuel from camp to camp.
They do GeoEquestria. We have something similar to Estrus, we call it Chagoon. How is it configured? Is it so you have your bunch of JavaScript or whatever files, and then you have configuration files? We have some JSON configuration files. Okay. The main one can be changed at front times.
So every detail can be changed by a JSON file where you can also configure the UI because Mapstore is based on the concept of assembling different plugins. Each plugin is a module by itself that gives you a complete functionality and can eventually integrate with other plugins.
Through the configuration file, you can configure from the basic aspects like which plugins I want in my application to which services I want to use. And then some things are instead interactive like the map configuration that you store are done interactively directly inside Mapstore
and saved on a database, basically. Okay, so out of one installation, you can have several maps? Yep, yeah, exactly. Okay, time for coffee? Yep, I think it is.
Okay, thank you very much. Thank you for coming. Bye bye.