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

The Survey of Vectortile techniques: Static vs Dynamic

00:00

Formale Metadaten

Titel
The Survey of Vectortile techniques: Static vs Dynamic
Serientitel
Anzahl der Teile
266
Autor
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
Vectortile ecosystem have made big changes in Web Mapping, especially in terms of Client-side map rendering. Thesedays, costs of producing and streaming tiles have been dramatically reduced by some techniques - tippecanoe, PMTiles… and so on. However we have the problem important but unsolved yet: Dynamic tiles. Techniques which are matured and widely used are for Static tiles. Static tiles are not good at streaming data frequently updated but we sometimes need to dynamically serve such data. In this talk, I’ll survey techniques for Dynamic tiles which already exist and propose the solution for this.
BestimmtheitsmaßDynamisches SystemProzess <Informatik>HydrostatikSondierungComputeranimation
Monster-GruppeSoftwareOpen SourceMAPFormation <Mathematik>Abstimmung <Frequenz>Computeranimation
EDV-BeratungGeoinformatikVisualisierungProzess <Informatik>PunktwolkeMereologieArithmetisches MittelSoftwareentwicklerOpen SourceFitnessfunktionKartesische KoordinatenDivergente ReiheSelbst organisierendes SystemAbstandBenutzerbeteiligungAuswahlverfahrenEDV-BeratungTwitter <Softwareplattform>TrägheitsmomentProdukt <Mathematik>Dienst <Informatik>SoftwareInformationsspeicherungProgrammierungMapping <Computergraphik>Gebäude <Mathematik>Projektive EbeneNabel <Mathematik>ComputeranimationVorlesung/Konferenz
Message-PassingMessage-PassingNabel <Mathematik>ParkettierungSymbolische DynamikVektorraumHydrostatikInhalt <Mathematik>KontrollstrukturComputeranimation
AchtAnalog-Digital-UmsetzerVektor <Datentyp>VektorraumDefaultKonfiguration <Informatik>Abelsche KategorieStandardabweichungTreiber <Programm>IkosaederBitmap-GraphikDateiformatSpannweite <Stochastik>HIP <Kommunikationsprotokoll>Spannweite <Stochastik>TesselationSchreiben <Datenverarbeitung>ServerVektorraumTermCodeParkettierungProzess <Informatik>Umsetzung <Informatik>Elektronische PublikationBitmap-GraphikFunktionalNatürliche ZahlElementargeometrieUmwandlungsenthalpieCASE <Informatik>RenderingInformationsspeicherungMAPSymbolische DynamikHydrostatikTabelleImplementierungFunktion <Mathematik>Inhalt <Mathematik>ClientRahmenproblemSystemprogrammSoftwareOffene MengeLastProdukt <Mathematik>DefaultZentrische StreckungBenchmarkBildgebendes VerfahrenSchnittmengeInterface <Schaltung>PunktOpen SourceKategorie <Mathematik>Heegaard-ZerlegungStandardabweichungKonfiguration <Informatik>Treiber <Programm>Reverse EngineeringVolumenvisualisierungProgrammbibliothekDateiformatsinc-FunktionMereologiePhysikalisches SystemSelbst organisierendes SystemVersionsverwaltungWahlfreier ZugriffQuadratzahlSoftwaretestPunktspektrumQuaderTypentheorieMaterialisation <Physik>MultiplikationsoperatorAppletDifferenteFormation <Mathematik>ProgrammierungKreisflächeMixed RealityOrdnung <Mathematik>DigitalisierungGüte der AnpassungRobotikMittelwertsatz <Integralrechnung>Ganze FunktionWorkstation <Musikinstrument>CybersexNichtlinearer OperatorPixelKapillardruckEindeutigkeitPunktwolkeAutomatische HandlungsplanungProgrammierumgebungComputeranimation
HydrostatikProzess <Informatik>GasströmungGanze FunktionDruckverlaufWort <Informatik>HydrostatikDynamisches SystemMultiplikationsoperatorInformationsspeicherungCASE <Informatik>Objekt <Kategorie>WellenlehreProzess <Informatik>ParkettierungSchnittmengeTesselationSymbolische DynamikServerBenutzerbeteiligungOrbit <Mathematik>Ganze FunktionComputeranimation
GasströmungDefaultGlobale OptimierungDemo <Programm>ServerClientTesselationDynamisches SystemFormation <Mathematik>KonfigurationsraumTabelleSelbst organisierendes SystemImplementierungDefaultKategorie <Mathematik>Mittelwertsatz <Integralrechnung>Web-SeiteServerSymbolische DynamikTypentheorieDatenflussUmsetzung <Informatik>UmwandlungsenthalpieFigurierte ZahlRechter WinkelGenerator <Informatik>WKB-MethodePunktwolkePlastikkarteEinfach zusammenhängender RaumProdukt <Mathematik>Konfiguration <Informatik>ÄhnlichkeitsgeometrieFunktionalMAPElementargeometrieBinärcodeInnerer AutomorphismusFlächeninhaltMultiplikationsoperatorBootenParkettierungSchreiben <Datenverarbeitung>Computeranimation
Formation <Mathematik>Web-SeiteGüte der AnpassungDynamisches SystemKonfiguration <Informatik>CASE <Informatik>ServerPhysikalische TheorieDigitalisierungSymbolische DynamikZoomRechenschieberRobotikMAPComputeranimation
ServerClientDemo <Programm>Codierung <Programmierung>GasströmungFormation <Mathematik>Demo <Programm>Spezifisches VolumenPolygonSystemverwaltungRandwertComputeranimation
RechnernetzMetrisches SystemExogene VariableMittelwertRechenbuchGasströmungMittelwertsatz <Integralrechnung>Dynamisches SystemZweiMetrisches SystemEinsKategorie <Mathematik>Formation <Mathematik>KonditionszahlCASE <Informatik>Lesen <Datenverarbeitung>ParkettierungNeuroinformatikSymbolische DynamikComputeranimation
Demo <Programm>ServerMittelwertsatz <Integralrechnung>ParkettierungGasströmungGemeinsamer SpeicherLesezeichen <Internet>Formation <Mathematik>ImplementierungDynamisches SystemParkettierungComputeranimationVorlesung/Konferenz
Transkript: Englisch(automatisch erzeugt)
Thank you for coming for my talk. Today I'd like to talk about my talk titled the Survey of Weak Society Techniques, Stake Versus Dynamics. First, I'd like to introduce myself.
I am Kanahiro Iiguchi from Japan. I call myself GIS OSS enthusiast. And so I love for SOGI and open source software. I wrote some course and published some software as an open source license. And I am a member of my previous user group, Japan.
And I am one of the members of my previous voting member. And I work as a CTO at Miele Inc in Japan. Miele is a tech company in Japan specialized in geospatial technologies. Miele means it's visible in Japanese.
And we focus on visualizing. We process data and visualize them. This is Miele way. Miele is located in Sapporo City in Hokkaido Prefecture. This is a northern part of Japan. President is here. And the distance between them is very distant.
It takes about a day from Japan to here. Miele is based on open source community for SOGI. And so we continuously support open source communities like this. And Miele is one of the sustaining members for QGIS.org.
And Miele is the first sponsor for my previous organization. And one of the founder is selected as AWS heroes for his contribution for open source to be involving in AWS.
Miele's sessions first and QGIS. We can develop QGIS programming to fit customers' needs and provide some support about such as consulting, seminar, and so on. And we can develop WebGIS, full-stack WebGIS application,
of course, including client-side and server-side substrates in great performance. Miele is an agent in Japan. So we provide support for Mapitailer products for Japanese customers. And also, we created and beautifully-styled maps
especially for Mapitailer cloud project. And Miele base, this is a GSB shell software as a service now under developing. And the concept is to store and edit and serve your GSB data to inform cloud, Miele-based cloud.
Our message is change the world with GSB shell. Let's get on to my talk. This is today's content, vector tile techniques. I introduced vector tile techniques and comparing static tiling and dynamic tiling. And as a conclusion, I introduce and suggest
solution for dynamic tiling. First, vector tile techniques. Vector tile techniques are grown in an ecosystem around the specification MapVox vector tile, NVT. At first, MapVox developed the spec and implementation,
render converter, or some utilities. There are some famous Dreyer's MapVox GHS or native or some fragments, typical GHS and BTS. There are many products regarding in vector tile.
And now, the X system have expanded beyond MapVox organization. And vector tile techniques are widely used in 4G. Of course, a map library is a part of it. And QGIS supports vector tile since version 3.14. Or, openers can load MapVox vector tile
or GeoServer can serve vector tiles as a plugin. And then, in this talk, I introduce softwares regarding to vector tile techniques. Mainly about producing and serving. I focus on producing and serving.
Okay. Already, there are many softwares can be used for production. Introduce them. I will introduce them with classifying into them into three types. Producing tiles from your own data set, producing tiles from open-source map data, and serving tiles.
Okay. First type, producing tiles from your data set. In this category, there is a great difficulty standard. Typical is, I think, in my opinion, typical is a difficult standard in this category. And first developed, and the map was at, but now and available to come.
This provides good performance and has a simple interface and dependencies. Typical has a very nice default settings and many, many options for specific use cases. We can customize our vector tile. Okay, next.
JITL-OGL also supports MVD as a vector driver. We can convert JITL-OGL into MVD in the JITL-OGL, but there are some problems in simplifying and dropping features in JITL-OGL, in my opinion. And PostGIS.
PostGIS can convert geometry into MVD in function ST as MVD. This function is fast enough to serve tiles dynamically. This is important for me. Okay, next category. And producing tiles from OpenStreetMap.
In this category, OpenStreetMap tiles open the door of this category. OpenMap tiles pass osm.pbf into PostGIS table by predefined schema and then output as a MVD. Output every tiles.
This is great, but this has a problem in cost for producing tiles. It may take some days for converting planet data. So to solve this problem, newer implementation appears.
First is TileMaker. TileMaker references OpenMap tiles schema written in C++. This is very fast converting of tiles. Easy to use and customize, but for planet, it is under experimental status
for planet, planet converting. Third, PlanetTiler. This is newest and new device standard in this category, PlanetTiler. This also references OpenMap tiles schema written in Java.
This is also very fast converting of tiles. Benchmark is published by PlanetTiler and according to it, for planet, even for planet, converting finished inside one hour. This is very amazing. It is easy to use with Docker image
and we can customize output. PlanetTiler is well documented and ready for production even for planet scale. Okay, third category, serving tiles. There are many implementation, but I pick up these two software.
First, Tiles of GL. These serve tiles, extra tiles for clients from MVTiles. MVTiles is based on SQLite, so we need server implementation. Tiles of GL can serve tiles from MVTiles.
And the unique point is Tiles of GL can serve raster tiles as a styled image by map reverse specification by server-side rendering. This is a unique point. And next, PMTiles. PMTiles is a cloud-optimized file format
and in this year, many sessions mentioned PMTiles. PMTiles become a new standard in one year. PMTiles includes all tiled data in one file. And clients can get each tile, each tile,
split in one file and clients can, specific one tile, can get specific one tile by random access via HTTP range request. This is nature of cloud-optimized file format. This is amazing. This is, PMTiles is similar to MVTiles
in terms of one file format and name is similar. But this format, in this format, you need no server implementation, only some storage and clients. There are only some storage and clients to serve tiles.
repeated tiles, also repeated tiles, for example C, same content of tile, is well-compressed in PMTiles file format, okay. And thus, the cost for producing and serving vector tiles have been dramatically reduced by these softwares,
typical of frame tiles, PMTiles. We can serve vector tiles in a much lower cost than ever. And then, now you can utilize vector tiles in many sessions at tiny costs. Almost all stations, we don't have to write server code.
However, these techniques mainly focus on static tile. Okay, static process dynamic. This word is used in other sessions by about T-Tile.
This is, then, I'm surprised, but. Static tiling is one of the best way, in my opinion, static tiling is one of the best way to serve any geospatial data set, because you can pre-process all tiles from a data set. You can make all tiles from just data set in advance.
For serving tiles, you need only wave server or some object storage like SC, and this need not much cost. And besides this, performance in serving
is very good in static tiling. But static tiling has a big problem can't be solved in secure approach, serving frequently updated data set. In static tiling, once origin data set updated, you have to reprocess tiling in static approach.
At first, entire tiles, entire all tiles, we have to update, reprocess. And this process takes unacceptable cost when update is frequent. For example, updated in second and next meet,
updated, we cannot reprocess each time, each time, such a short time. But then you have to, update is frequent, but you have to serve newest data. This situation is not suitable for static tiling.
But this is not rare situation, not rare case. This is a difficult situation when we develop some wave GIS, and we often encounter such situation. So we need to consider dynamic tiling for next.
Okay, dynamic tiling. Of course, not only me think about dynamic tiling. In this year, many talk about, and many talk mention dynamic tiling. So this is encouraging me, this is correct way to go.
There are, but there are some implementation, already there are some implementation, serving types from post GIS dynamically. So I'll introduce them from now. And they can be classified into two types based on function STASMVT or not.
First, I have to explain about STASMVT. STASMVT is a function provided by post GIS. It can be used for converting geometry, post GIS geometry into MVT binary.
And first implementation was, seems to be in 2018, and improve boots many times from 2018. And then performance have been improved now. Okay, first category, dynamic tiling category.
A native conversion type server. In this category, we have mentioned T-Rex. This is an early adopter in dynamic tiling written in Rust. And second implementation, there is Tegora type server.
This is written in Go. Tegora supports native combating as default, but seem to support STASMVT also as well, as optional. I tried this feature, but it doesn't work for me.
But this supports STASMVT also. But default is native conversion. In this category, write figure indicating data fraud. Or in this category.
Please keep in mind, the conversion from WKB to MVT is occurred in the server. Okay, next, with STASMVT. This category is somewhat newer, relatively newer servers. First, crunchy.pg type serve.
This is written in Go and easy to use with your config. You can. If you have post GIS table, you can launch type server in very, in few steps. And there are many customizable options.
Next, this is my recommendation, Map-Review Martin. First, in Abicobot, now in Map-Review organization. And this is written in Rust. Easy to use, easy to use with zero config. This is similar to page style serve. It is very easy to use.
And also, yeah. Supports MV tiles, or PM tiles, as a back end. Not only post GIS, it is unique. And newest feature, Martin supports dynamic sprite for Map-Review style specification. And sprite generation is somewhat painful.
It is painful, so this is very useful. And Martin is fast, fastest server in this category. Third option, TPG. There are sessions about TPG in this year. This is built on fast API and Python.
Similar concept to ttyra. Ttyra is a server for crowd-optimized geotiff. But this is not production-ready server. Okay, this is, from now on, I try to demo. Not good connection, but it should work.
I launched this server this morning. This server consists of post GIS, and Martin, PG-style server, and Tegro server. And these three servers directed to,
direct things to same post GIS. Martin is fast like this, and I move map. This is rendered in dynamic, on request.
And I changed back end to PG-style server. PG-style server is also good. It is reasonably good. And Martin, we have to keep in mind, Martin and PG-style server is based on ACI community.
And third option, Ttyra. Ttyra is not based on ACI community. And this supports native combating. It's like this, now generating tires, but Ttyra is not fast in this case. Like this. So as you can see, ACI community has a very good performance.
And robot zoom level means more cost for generating tires, as you can see.
Each tire is, we have to keep in mind, each tire is generated on tire requests, dynamically. Okay, let's get back to my slide. And I published simple course about this demo.
In this, you probably should check it, if you have interest. In this demo, I used Japanese admin boundary polygons. And this includes 120,000 polygons.
Okay, so, okay, I hurried. But hold on, this is not strict metrics, but Martin takes 600 milliseconds, and PG-style server, two seconds, and Ttyra takes 30 seconds, yeah, in same condition.
And so Martin is fastest in this category. You have to keep in mind, and STLZ-MVT is much faster than native computing. In ordinary cases, okay, and first one's out. Okay, dynamic tiling has a process,
can serve newest ZT courses in DB. But this is most important feature in dynamic tiling. And of course, there are some costs, and please read it, okay. Okay, someone is here, but I'll share this slides.
After, okay. Congratulation, because I think it's much better in static tiling, but not in dynamic yet. Dynamic tiling is necessary for serving newest data, frequently updated data. And there are some great production-ready implementations,
even dynamic tiling, like my favorite, Martin. Okay, that's it, thank you.