MapStore: Modern mashups with OL, Leaflet and React
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Alternativer Titel |
| |
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 | 10.5446/43400 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
| |
Schlagwörter |
FOSS4G Bucharest 2019183 / 295
15
20
28
32
37
38
39
40
41
42
43
44
46
48
52
54
57
69
72
75
83
85
87
88
101
103
105
106
108
111
114
119
122
123
126
129
130
131
132
137
139
140
141
142
143
144
147
148
149
155
157
159
163
166
170
171
179
189
191
192
193
194
195
196
197
202
207
212
213
214
215
216
231
235
251
252
263
287
00:00
Lipschitz-StetigkeitInformationsspeicherungBitMomentenproblemXMLUML
00:25
Coxeter-GruppeBitSoftwareDebuggingWeb ServicesVorlesung/Konferenz
00:44
RechnernetzClientServerJava EnterpriseAppletVisualisierungDatenfusionBildverarbeitungInformationsspeicherungTextur-MappingCoxeter-GruppeProdukt <Mathematik>XMLUMLComputeranimation
01:21
SoftwareentwicklerTextur-MappingRahmenproblemWeb SiteCoxeter-GruppeInformationInformationsspeicherungKartesische KoordinatenGebäude <Mathematik>MAPProgrammbibliothekQuick-SortWidgetBenutzerbeteiligungKrümmungsmaßXMLComputeranimationUML
02:20
SoftwareentwicklerFramework <Informatik>InformationsspeicherungSoftwareentwicklerKartesische KoordinatenGebäude <Mathematik>Mailing-ListeTextur-MappingProzess <Informatik>XMLUML
03:19
GammafunktionVollständigkeitGeradeEinfache GenauigkeitComputerspielProdukt <Mathematik>ZweiSoftwareentwicklerWiederkehrender ZustandCodeOpen SourceMapping <Computergraphik>Computeranimation
03:47
KonfigurationsraumProdukt <Mathematik>Elektronischer FingerabdruckCASE <Informatik>Elektronische PublikationKonfigurationsraumBitSichtenkonzeptIdentitätsverwaltungStichprobenumfang
04:13
DimensionsanalyseAxonometrieWeb ServicesIntelDruckspannungDesintegration <Mathematik>WidgetTemplateTexteditorTextur-MappingInformationsspeicherungStandardabweichungMapping <Computergraphik>ImplementierungEinsMailing-ListeFunktionalNP-hartes ProblemIntegralZusammenhängender GraphMultiplikationsoperatorProjektive EbeneDimensionsanalyseIdentitätsverwaltungComputeranimationXML
06:27
Hausdorff-DimensionOrtsoperatorAnwendungssoftwareServerInklusion <Mathematik>MarketinginformationssystemTime line <Programm>MultiplikationWeb ServicesDimensionsanalyseMessage-PassingKonfigurationsraumDateiformatPlug inProdukt <Mathematik>MultiplikationsoperatorATMSpannweite <Stochastik>Quick-SortVollständigkeitMaßerweiterungServerOrtsoperatorMereologieFunktionalWeb logMetropolitan area networkBildschirmmaskeInformationsspeicherungComputeranimation
08:16
MultiplikationsoperatorProjektive EbeneRechenschieberComputeranimation
08:46
Ein-AusgabeNormierter RaumAxonometrieRechenwerkMIMDGammafunktionSpannweite <Stochastik>EntscheidungstheorieMultiplikationsoperatorKrümmungsmaßTypentheorieTextur-MappingProjektive EbeneDifferenteAlgorithmusComputeranimation
09:25
AxonometrieDienst <Informatik>ServerProjektive EbeneProgrammbibliothekElektronisches MarketingÄquivalenzklasseWeb SiteMultiplikationsoperatorFunktionalWort <Informatik>DifferenteFront-End <Software>ClientExistenzsatz
10:27
CodeAxonometrieProjektive EbeneEinfügungsdämpfungEinsOrtsoperatorBenutzerbeteiligungCASE <Informatik>Gewicht <Ausgleichsrechnung>Kartesische KoordinatenCodeMailing-Liste
11:29
KreisflächePolygonGeradePunktTexteditorServerElementargeometriePunktDienst <Informatik>Hintertür <Informatik>ImplementierungClientWorkstation <Musikinstrument>Konfiguration <Informatik>TermBeobachtungsstudieTypentheorieMereologieFunktionalTextur-MappingVektorraumSymboltabelleGüte der AnpassungComputeranimation
12:24
SystemverwaltungAggregatzustandTexteditorCross-site scriptingMereologieTemplateStichprobenumfangTexteditorGraphfärbungFunktionalComputeranimation
13:03
FontTexteditorServerDienst <Informatik>StrömungsrichtungServerRichtungTexteditorREST <Informatik>VektorraumÄhnlichkeitsgeometrieRenderingWeb SiteProgramm/QuellcodeComputeranimation
13:48
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
16:24
ServerDruckspannungDesintegration <Mathematik>Lesen <Datenverarbeitung>Web SiteKartesische KoordinatenBenutzerbeteiligungSoftwareentwicklerElektronischer ProgrammführerInformationsspeicherung
16:46
MultiplikationDesintegration <Mathematik>InformationMaßerweiterungMaßerweiterungDimensionsanalyseAggregatzustandRhombus <Mathematik>Profil <Aerodynamik>FunktionalMultiplikationsoperatorMetropolitan area networkPlug inXMLComputeranimation
17:25
Integriertes InformationssystemTextur-MappingTexteditorFunktionalPhasenumwandlungPrototypingProdukt <Mathematik>ImplementierungUmsetzung <Informatik>InformationsspeicherungMereologieDateiformatSyntaktische AnalyseKollaboration <Informatik>MultiplikationsoperatorVektorraumBildschirmmaskeComputeranimation
18:41
Open SourceDateiformatMittelwertsatz <Integralrechnung>Cross-site scriptingVektorraumProgrammbibliothekDifferenteBenutzerfreundlichkeitOpen SourceFormale SpracheProdukt <Mathematik>Protokoll <Datenverarbeitungssystem>Einfacher RingAbenteuerspielTypentheorieDateiformatTesselationRenderingUmsetzung <Informatik>EinsVektorraumComputeranimation
19:44
Produkt <Mathematik>Mapping <Computergraphik>InformationMultiplikationsoperatorÄhnlichkeitsgeometrieGebäude <Mathematik>Computeranimation
20:24
AxonometrieFehlermeldungOpen SourceProjektive EbeneProgrammfehlerXMLUML
20:46
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)
00:08
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.
00:22
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.
00:43
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
01:03
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.
01:22
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.
01:42
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
02:03
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.
02:22
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.
02:42
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.
03:00
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.
03:26
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
03:40
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
04:00
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?
04:24
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
04:40
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,
05:00
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.
05:23
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
05:41
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.
06:01
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.
06:20
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
06:43
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.
07:01
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
07:23
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
07:42
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
08:01
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
08:20
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.
08:41
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
09:01
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
09:20
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.
09:43
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
10:00
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
10:24
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.
10:43
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
11:02
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
11:21
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.
11:43
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.
12:04
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.
12:22
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
12:41
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
13:04
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.
13:23
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.
13:40
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
14:00
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
14:23
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
14:41
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.
15:00
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
15:24
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.
15:45
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
16:01
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.
16:26
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
16:42
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
17:00
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
17:22
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.
17:40
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,
18:00
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.
18:22
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.
18:42
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
19:07
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
19:21
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.
19:46
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.
20:03
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.
20:26
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.
20:42
And that's all. Any question? Thank you. Juan, over there.
21:03
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
21:21
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
21:40
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,
22:01
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
22:22
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
22:40
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.
23:02
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.
23:24
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.
23:42
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
24:02
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.
24:20
Okay, thank you very much. Thank you for coming. Bye bye.