Integration of GIS in non-GIS applications
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | 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. | |
Identifiers | 10.5446/43373 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
DisintegrationSoftwareCodeRight angleWritingLocal GroupSoftware developerSource codeAddress spaceThumbnailGroup actionSoftware developerLie groupMereologyPresentation of a groupAreaLebesgue integrationProcess (computing)CodeExpert systemCartesian coordinate systemComputer animation
01:47
Local GroupoutputRange (statistics)Medical imagingWeb-DesignerOpen sourceProjective planeSimilarity (geometry)Orientation (vector space)Address spaceNatural numberLevel (video gaming)Physical systemServer (computing)HypermediaSoftware developerBitSinc function
02:48
Modul <Datentyp>Web portalTask (computing)Time domainEmailLatent heatCartesian coordinate systemGeometrySoftware developerLevel (video gaming)Web portalNatural numberModule (mathematics)Domain namePhysical systemTask (computing)AreaEndliche ModelltheorieUniform resource locatorMereologyINTEGRALProgram flowchart
04:31
Task (computing)GeometrySystem administratorNatural numberState of matterGroup actionComputer animation
05:14
Category of beingCodeSystem programmingTask (computing)Computing platformOpen setLebesgue integrationTask (computing)MappingCategory of beingSet (mathematics)Software developerLatent heatFunctional (mathematics)Group actionDigitizingProjective planeStandard deviationUniform resource locatorDampingTable (information)Physical systemTouchscreenSimilarity (geometry)Computing platformLevel (video gaming)Object (grammar)Bit rate
07:07
Computing platformDisintegrationSystem programmingMaxima and minimaPersonal digital assistantModul <Datentyp>Software frameworkOpen setComputing platformMilitary baseOpen sourceOracleMultiplication signComputer configurationLatent heatUser interfacePhysical systemCASE <Informatik>Cartesian coordinate systemProjective planeDampingForm (programming)INTEGRALSimilarity (geometry)Line integralLebesgue integrationLibrary (computing)Programmer (hardware)Functional (mathematics)Software developerUniform resource locatorPoint (geometry)Lecture/Conference
09:47
Computing platformSoftware frameworkOpen sourceDatabaseSQL ServerOracleSpring (hydrology)Java appletDisintegrationServer (computing)Computing platformMilitary baseOpen sourceSequelComputer animation
10:30
Computing platformSoftware frameworkDatabaseOracleSQL ServerOpen sourceSpring (hydrology)Open setDisintegrationServer (computing)Java appletClient (computing)Server (computing)Cellular automatonOracleInformation securityFront and back endsSoftware frameworkCASE <Informatik>Interface (computing)Service (economics)Lebesgue integrationCache (computing)Open setSoftware developerRepresentational state transferINTEGRALScaling (geometry)Multiplication signProcess (computing)Computer animationLecture/ConferenceMeeting/Interview
11:52
Spring (hydrology)Server (computing)Computer networkModel theoryMeta elementOracleOpen setLevel (video gaming)Endliche ModelltheorieData storage devicePhysical systemForm (programming)Server (computing)Filter <Stochastik>Meta elementInsertion lossProjective planeSequelComputer animation
12:46
Server (computing)Spring (hydrology)Link (knot theory)Meta elementModel theoryOpen setRaster graphicsVector spaceUser interfaceMultiplicationFormal languageSystem identificationElasticity (physics)Drop (liquid)Drag (physics)File formatComputer fileFile viewerText editorUser interfaceDifferent (Kate Ryan album)Client (computing)Server (computing)Open setConnectivity (graph theory)Formal languageSystem administratorNatural languageDean numberAttribute grammarMilitary baseProcess (computing)Range (statistics)View (database)Data modelFront and back endsJava appletRight angleVector spaceINTEGRALRaster graphicsComputer animation
14:07
Elasticity (physics)System identificationComputer fileRaster graphicsVector spaceMultiplicationFormal languageModel theoryUser interfaceDrop (liquid)Drag (physics)File formatFile viewerText editorView (database)Interface (computing)Bit rateMathematicsSystem callPhysical systemRaster graphicsVector spaceUser interfaceSystem identificationDrag (physics)Cartesian coordinate systemProcess (computing)Server (computing)Drop (liquid)Computer animationLecture/Conference
15:02
File viewerText editorGeometrySelectivity (electronic)Level (video gaming)System administratorStandard deviationEndliche ModelltheorieNetwork topologyElectronic mailing listEmailComputer animation
15:47
DisintegrationData managementSocial classNetwork topologyModul <Datentyp>Information securityService (economics)PurchasingModule (mathematics)Addressing modeSystem administratorRepresentational state transferAttribute grammarSocial classMetamodellData managementStandard deviationUser interfaceLebesgue integrationSoftware developerComputer configurationService (economics)Endliche ModelltheorieModule (mathematics)Projective planeInformation securityLatent heatGroup actionPurchasingMathematicsNetwork topologyHand fanLogical constant1 (number)Server (computing)Interrupt <Informatik>Forcing (mathematics)Phase transitionComputer animationMeeting/InterviewLecture/Conference
17:34
DisintegrationCASE <Informatik>Bootstrap aggregatingVaporPhysical systemComputer configurationNetwork socketLebesgue integrationComputer animation
18:06
DisintegrationMaizeLebesgue integrationWeb 2.0User interfaceSimilarity (geometry)Web browserPhysical systemConnectivity (graph theory)Computer configurationSoftware frameworkRevision controlNetwork socketMechanism designStandard deviationClient (computing)Zoom lensLevel (video gaming)Frame problemStructural loadDrop (liquid)Uniform resource locator
20:09
Component-based software engineeringDisintegrationWeb pageConnectivity (graph theory)Web browserWeb 2.0Independence (probability theory)File viewerLibrary (computing)Computer animation
20:41
Component-based software engineeringDisintegrationWeb pageBit rateMaizeTorusSoftware frameworkRevision controlWeb browserInstance (computer science)Modul <Datentyp>Demo (music)Connectivity (graph theory)Library (computing)Archaeological field surveyWeb browserSoftware frameworkLebesgue integrationPhysical systemCartesian coordinate systemWeb 2.0Computing platformDemo (music)Video gameLecture/ConferenceComputer animation
21:52
Image warpingZoom lensTime zoneLevel (video gaming)Image resolutionLine (geometry)Order (biology)EmailCircleVaporCartesian coordinate systemPoint (geometry)NumberStandard deviationLevel (video gaming)Zoom lensComputer animation
23:02
Zoom lensLine (geometry)Open setProgrammable read-only memorySummierbarkeitPermianMenu (computing)Level (video gaming)Normed vector spaceComputing platformZoom lensComputer animation
23:29
WebsiteComputer animation
23:55
Computing platformRevision controlLecture/Conference
24:29
WebsiteAmicable numbersAddress spaceError messagePublic key certificateWebsiteComputer animation
25:35
MathematicsThomas BayesRange (statistics)Video gameNetwork topologyMobile WebTablet computerCartesian coordinate systemComputer animation
27:04
Computing platformMenu (computing)Back-face cullingMereologyOpen sourceDemoscene
28:19
Projective planePresentation of a groupMereologyOpen sourceTelecommunicationCASE <Informatik>Computer animation
29:11
Key (cryptography)
Transcript: English(auto-generated)
00:07
My name is Thomas Lofovat. I come from a Croatian company called IGEA. Me and my colleague Marco made a presentation about
00:21
challenges in integration of GIS and non GIS applications. So in short, I'll tell who we are, what what do we do usually, and how we solve
00:40
those problems. So they said that there is like a dill-word joke for every situation in IT, so this picture could describe our current work. So with like
01:01
experienced IT experts that don't code too much anymore, but we're promoted to something something else. So IGEA is a Croatian company. IGEA is part of the IN2 group.
01:24
The IN2 group is one of the largest IT companies in Croatia. We have around 15 GIS developers. They are specialized in GIS and around 300
01:43
developers in the whole IN2 group. They work in different areas. We cover a wide range of public sector and private sector projects. IGEA has more than 10 years of
02:01
experience in open source GIS development, mostly web development and some desktop. We're working on national level systems like cadastral systems, address registers, nature protection and similar.
02:22
Basically, we are open source oriented. At first we were working with geomedia for some years, but since like 2007 or 2008, we started working with open source technologies like GeoServer and some other
02:40
technologies. So this image describes what do we do actually. So we, on the lower level, we have GIS support systems. So those are business systems that use GIS like added value. So we work with cadastral, with
03:05
spatial planning, nature protection, roads and some other areas. We work on domain geo portals that are on national level, but are specialized for some
03:21
area like, I don't know, nature protection and other. And we were working on a national level geo portals. We've done geo portals in Croatia and Albania and some other countries.
03:44
So what challenges do we have? So the most, the most, the two main tasks that we deal with are development of standalone graphically driven applications. So those are basically geo portals and we
04:03
develop GIS modules that are not standalone, but integrate in other non-GIS or business applications. So as I've said before, we have, we work on national geo portals and domain specific
04:23
geo portals as standalone portals are concerned. And these are some screenshots related to those geo portals. The first one is Albania and the second one is
04:43
SDI in Croatia and in, and geo portal for national state geodetic administration. On the right side we have, we have some specialized geo portal for infrastructure
05:02
for roads and for nature protection or for sensors and air quality. The other group of tasks are related to integrations. So
05:26
we work with, there's a standard set of functions that we support in those integrations. So usually when some system integrates GIS data
05:41
it uses GIS maps for some of the tasks that are shown on the screen. So we usually show something on map. Let's say we have a property and user says show me this property on map. Then we like make a digitization of those
06:05
business related objects. Let's say location of this property and we have like show me thematic maps based on table data. This is like a simple BI
06:21
integration and of course we need to geocode the location or find an address or similar. How do we solve these integration issues? So we have
06:41
multiple approaches. Two main approaches are custom development. So in projects that are highly customized, we use like development from scratch that are simple.
07:00
Simple and they have specific workflow and for other stuff we use like in-house development platform that is open source based. So in the end the goal is to make this integration more simple and to
07:21
and that this application looks like a single application. So there isn't like you have a business application and at what point you have to jump to this GIS application. So the user interface should look like it is one application or integrated.
07:45
When do we use custom development? So we try to make these custom development options as rare as possible. But sometimes we need it, especially with in cases when
08:05
when there is a legacy system that doesn't have an option to to easily integrate and is perhaps developed on some
08:20
older technology like Oracle Forms or some older technology from 90s or 2000s. When in cases when we need a simpler functionalities and our platform is too complex and too big and where there is some kind of specific workflow that
08:45
isn't supported by our platform. So the main the goal is to minimize those cases and to make this our platform called Igeo more flexible and so we can use it in
09:03
complex integrations and also in simpler integrations. Igeo platform that we developed we were working on it for I don't know a few years perhaps five years.
09:23
So this is we on the beginning we were developed every time we had a project we developed it from from scratch. So we took open layers some JavaScript library and few programmers made this
09:43
application and during the projects we've we've seen that there is some similarities that we can make some some platform some like base for every other projects and we've started to
10:02
develop this platform. So this Igeo platform is open source based. So every technology that we use is open source. The only thing that is not open source are perhaps databases that we use. So we
10:26
whenever we can we want to use post GIS or post SQL but sometimes the client wants to use Oracle or SQL Server or something else.
10:44
Backend is based on Java Spring and frontend is based on Angular and open layers and Cesium and in cases when there is a need for 3D support. Of course, we have integration with GeoServer,
11:01
GeoWeb Cache and GeoFence. Integration is realized through some REST API so we can like make some layer on GeoServer through our interface or we can like initiate cache reload or I don't know work with security through GeoFence.
11:24
So as I've said, so we use this Igeo on one hand as a standalone framework standalone GeoPortal so we can like deploy it and user can make their own data,
11:42
create new layers, expose it through services. On the other hand, we use it for custom development. So this picture shows this picture shows technology that are used in the system. So on the lower level we have
12:05
a meta model that is usually stored in PostGIS or can be stored also on SQL Server or Oracle. We also use Elasticsearch. Elasticsearch is used for storage for
12:24
for search search needs because we so we basically prepare all data in Elasticsearch in a simpler form so we can make a quick search of all data including spatial filtering.
12:48
With these components we communicate through our backend that is Java based and this backend also communicates with GeoServer, GeoWebcache and
13:03
GeoNetwork. This is not so important right now, but also we have some integrations with GeoNetwork. On the client side, as I said, we have OpenLayers, Angular, and Cesium that communicates with every of those layers either
13:23
with GeoBackend or GeoServer and caching server. In short, Igale has support for 2D and 3D
13:42
viewing of raster and vector layers. We have integrated multi-language support through this user interface so we can, through administration, we can create language, different language packages for all the data, all user interface labels, and also
14:01
data models so we can make names of attributes in different languages. We have a wide range of tools for navigation, measuring, drawing, and in general support for history of data, data history through this
14:21
change set mechanism. Of course, as I've said before, we have support for advanced search and identification using Elasticsearch and drag-and-drop of raster and vector data which are stored on GeoServer. So we, on the fly, make like a new layer which is stored on the GeoServer and we
14:49
show it on the map. Also, we can integrate it with GeoWebcache so we can cache it on the fly. So
15:00
this is a basic user interface of the system. I will show it later if I'll have enough time. Okay, maybe I'll have. So on the left side we have a layer tree that shows all the layers. The layer tree is hierarchical so we can have multiple levels.
15:23
Those is the list of the select layers or shown on the map. We have this base layer selection. On the right side, we have the old tools that are also in hierarchical menus and the standard header.
15:48
Regarding the administration, so this administration is based on metamodel. So we can manage feature classes and their attributes and this is integrated with GeoServer, so we use GeoServer REST API and
16:05
create feature classes, attributes and everything, basically everything that is supported through API. We can, we've made some, our custom feature classes styling tool that is based on SLD
16:23
specification and some custom vendor options from GeoServer. We can, we have support for teams, layer trees, data import. We support security of the services through integration with geofence, so we've
16:44
made some custom metamodel that is very similar to geofence and we store it when we persist those changes in geofence security model. We can, we can define which tools are
17:02
available for which user or group of users and for some, on some project we were, we need to develop support for data purchase or in payment integration, so we've made the whole
17:24
module that is used and can integrate with some payment payment service. So this is a user interface of the, standard user interface of the admin module. Of course it can be customized,
17:42
it uses latest JavaScript technology, I think in this case we've used some team and bootstrap and and it can be customized.
18:03
So how do we integrate it with other systems? So we usually, depending on the system that we need to integrate it with, we have like currently developed two major, two options. One option is web socket integration and one
18:21
integration in standard JavaScript API. We, of course, since we use iframe because we need to integrate with some legacy system that cannot integrate our our client side and
18:41
CSS and some other issues, so we use it currently with iframe. We have some integration methods that we use like a standard zoom to some location or draw some object and similar so we can like
19:03
we can like manipulate with with data on the map through this other user interface. So what is the future of this? So since we are using iframes, this is like very old technology and has its own drawbacks.
19:25
The thing we were started to research is our web components. So web components is a mechanism that allows you to create custom web component in some of the JavaScript
19:41
frameworks that you can register in any HTML that is loaded in web browsers. So in your version of web browsers like Chrome, Firefox or I don't know, Opera.
20:03
So it should provide like a seamless integration. We could be able to integrate it in any HTML. Of course, we need support for for these web components in the browser, which all the newer browsers have.
20:22
And for this we're researching this technology that is rather new. It's called Angular Elements and it enables you to pack this component, this Angular component into this standalone and independent web component. And of course we can
20:44
in this component we can then integrate in any other library like React or Vue or something else. So Angular Elements, so this is a way this web component works. So application registers custom elements
21:05
in browser and creates this custom element to DOM and after that browser makes this component
21:22
available to the system. So you can use this like let's say custom element, which is called my tag inside of HTML in a simple simple way. So as I've said before,
21:40
Angular is one of the most popular frameworks and we use it for our platform. I will make a short live demo just to see this integration we use. We use currently.
22:01
Only problem is that I'm not sure if the resolution will be enough. Oh, it's okay. So using this, so this is a standard map that has HTML in an iframe with our application. So we
22:25
communicate through WebSocket API and say we can like this is not, so this is another application and this is a J application. So we can like make zoom to coordinates.
22:40
Okay, sorry, or I don't know zoom to extend or add some points so we can like send a command that creates points. Some lines, I don't know, we have support for circular crown and
23:00
we can zoom to it. And there is a number of methods that we've developed to support this. Now it's not working, just a moment. Zoom to all. Okay, this this is the way. I have like one minute I can
23:22
shortly show you the IgEo platform. You can you can check it out on this address.
23:45
You can't check it. Or I've written some, okay. Okay, I don't know, it doesn't work
24:10
apparently. But basically it's very similar to to this, although this is a very simplified version of this platform.
24:25
IgEo, it's blocked or something. On the end,
24:51
now I got the wrong address, sorry. It's not hosted on IgEo, but on the ION2 site. I forgot about that.
25:07
ION2 HR. Okay, we don't have a, we have a self-signed certificate, so it throws an error. It doesn't work.
25:31
Okay, sorry. On the end, no, no, I think it won't work. So it seems that somebody changed. There is a IgEo touchpad here.
26:06
You can access it. Okay, I'm not sure. How without? Okay, I could really use a mouse.
26:28
Thanks. I should have tried before. Okay, so this, on the left side we have a layer 3. The whole application, I forgot to mention, the whole application is responsive, so you can use it on a mobile phone, on
26:46
tablet or some other. You can change base layers. On the left side, we have a range of range of tools. I don't know, for identification, for drawing. So just to see that the layer trees,
27:07
the tool part is also like hierarchical, and we can check if this will work. So we have,
27:33
it's not the same, or it's, no, it doesn't work. Okay, if somebody will be interested in this, I can show you username and password.
28:10
So on the end, so, you can check on this address, actually not on this, because it doesn't work, but there is a question. So it's,
28:26
is this, is it open source? So in short answer is no, it's not currently open source, but we were planning to put it open source. We would like to
28:40
prepare a good documentation. Probably some parts won't be available since they are project specific, but since we are like deep in projects, we didn't fully prepare it to make it open source. Does anybody have some questions? No? Okay, and that's, in this case,
29:06
the next presentation is from Jakim Cepichki, is that correct? Okay, he will present,
29:21
he will present something about how to make JS sharing much quicker than it's currently possible. You can start.