Mapping in GeoServer with SLD and CSS

Video in TIB AV-Portal: Mapping in GeoServer with SLD and CSS

Formal Metadata

Mapping in GeoServer with SLD and CSS
Title of Series
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.
Release Date
Open Source Geospatial Foundation (OSGeo)
Production Year
Production Place
Portland, Oregon, United States of America

Content Metadata

Subject Area
Various software can style maps and generate a proper SLD document for OGC compliant WMS like GeoServer to use. However, in most occasions, the styling allowed by the graphical tools is pretty limited and not good enough to achieve good looking, readable and efficient cartographic output. For those that like to write their own styles CSS also represents a nice alternatives thanks to its compact-ness and expressiveness.Several topics will be covered, providing examples in both SLD and CSS for each, including: mastering multi-scale styling, using GeoServer extensions to build common hatch patterns, line styling beyond the basics, such as cased lines, controlling symbols along a line and the way they repeat, leveraging TTF symbol fonts and SVGs to generate good looking point thematic maps, using the full power of GeoServer label lay-outing tools to build pleasant, informative maps on both point, polygon and line layers, including adding road plates around labels, leverage the labelling subsystem conflict resolution engine to avoid overlaps in stand alone point symbology, blending charts into a map, dynamically transform data during rendering to get more explicative maps without the need to pre-process a large amount of views. The presentation aims to provide the attendees with enough information to master SLD/CSS documents and most of GeoServer extensions to generate fast, appealing, informative and readable maps.
Keywords GeoServer WMS WPS WCS CSS multiscale styling transformations
Presentation of a group Server (computing) Texture mapping Multiplication sign Software developer Bit Formal language
Default (computer science) Presentation of a group Server (computing) Standard deviation Multiplication sign Translation (relic) Right angle Flow separation Formal language
Point (geometry) Building Texture mapping Patch (Unix) Bit Drop (liquid) Acoustic shadow Field (computer science)
Standard deviation Texture mapping Channel capacity Mapping Personal digital assistant Simplex algorithm Factory (trading post) Digitizing Core dump Endliche Modelltheorie Graph coloring
Mathematics Game controller Interpolation Term (mathematics) Personal digital assistant Polygon Sheaf (mathematics) Genetic programming
Code Patch (Unix) Source code Genetic programming Parameter (computer programming) Computer font Computer icon Computer configuration Authorization Square number Circle Genetic programming Posterior probability Area Gradient Polygon Bit Measurement Type theory Uniform resource locator Personal digital assistant Internet service provider Triangle Pattern language Marginal distribution Window Spacetime
Diagonal Multiplication sign Forcing (mathematics) Patch (Unix) Polygon Bit Instance (computer science) Shape (magazine) Mereology Graph coloring Computer icon Population density Personal digital assistant Core dump Vertex (graph theory) Genetic programming
Addition Pixel Quantum state Confidence interval Genetic programming Bit Cartesian coordinate system Number Element (mathematics) Category of being Personal digital assistant Software design pattern Circle Right angle Resultant Spacetime
Genetic programming Shape (magazine) Field (computer science) Equivalence relation Category of being Square number Energy level Summierbarkeit Whiteboard Extension (kinesiology) Marginal distribution Position operator Spacetime
Point (geometry) Category of being Type theory Texture mapping Different (Kate Ryan album) Multiplication sign Genetic programming Bit Information security Computer icon Resultant Element (mathematics)
Default (computer science) Genetic programming Set (mathematics) Mass Rule of inference Computer icon Attribute grammar Element (mathematics) Medical imaging Latent heat Mathematics Personal digital assistant Circle Right angle Extension (kinesiology) Thomas Bayes
Area Web page Curve Group action Pixel Diagonal Multiplication sign Source code Displacement Mapping Bit Mereology Element (mathematics) Number Subject indexing Category of being Software Personal digital assistant Order (biology) Interrupt <Informatik> Website Metropolitan area network Position operator Condition number
Point (geometry) Group action Game controller Pixel Roundness (object) Software Computer file Parameter (computer programming) Rule of inference Spacetime
Covering space Point (geometry) Default (computer science) Multiplication sign Displacement Mapping Polygon Genetic programming Mathematical model Element (mathematics) Number Goodness of fit Personal digital assistant Term (mathematics) Position operator
Web 2.0 Time zone Mathematics Texture mapping Scaling (geometry) Information Mapping Rule of inference
Fraction (mathematics) Pairwise comparison Arithmetic mean Scaling (geometry) Multiplication sign Operator (mathematics) Order (biology) Polygon Range (statistics) Electronic visual display Mass Element (mathematics)
Arithmetic mean Exterior algebra Personal digital assistant Multiplication sign Volumenvisualisierung
Point (geometry) Game controller Presentation of a group Pixel Texture mapping Transformation (genetics) Polygon Set (mathematics) Sound effect Bit Function (mathematics) Acoustic shadow Extension (kinesiology)
Ocean current Process (computing) Visualization (computer graphics) Transformation (genetics) File format Personal digital assistant Scalar field Bit Water vapor Active contour model Geometry Attribute grammar
Point (geometry) Pixel Statistics Mapping File format Multiplication sign Maxima and minima Quicksort Dynamic range Graph coloring Field (computer science)
Point (geometry) Trail Server (computing) Observational study Multiplication sign Genetic programming Translation (relic) Attribute grammar Front and back ends Element (mathematics) Formal language Web 2.0 Revision control Mathematics Object model Cuboid Software testing Extension (kinesiology) Module (mathematics) User interface Addition Default (computer science) Structural load Software developer Moment (mathematics) Mathematical analysis Planning Bit Instance (computer science) Variable (mathematics) Sphere Flow separation Degree (graph theory) Type theory Category of being Word Angle Integrated development environment Volumenvisualisierung Right angle Quicksort Video game console Geometry
Interpolation Group action Computer file Transformation (genetics) Variety (linguistics) Morley's categoricity theorem Control flow Bit Function (mathematics) Multilateration Rule of inference Graph coloring Number Attribute grammar Category of being Computer configuration Single-precision floating-point format Buffer solution Resultant
Point (geometry) Server (computing) Pixel Diagonal Image resolution Function (mathematics) Parameter (computer programming) Distance Food energy Number Revision control Cylinder (geometry) Well-formed formula Computer configuration Energy level Extension (kinesiology) Physical system Distribution (mathematics) Texture mapping Scaling (geometry) Mapping Tesselation Sound effect Cryptography Oscillation Personal digital assistant Calculation File viewer Natural language Resultant
the the this the world the yeah you you will have it and of the and OK I think it's time like let's get started so things and I manhandling OpenGeo well enough story as your server developer and as you to develop their and I work for a just solution so each based company providing global support for just just original work and show the technology is thank you very much for hanging on coming to the last presentation of the Lost Ark taking this course for the then to them going to discuss a bit on the common mapping techniques for just server using 2 languages the CSL
so why CSL seller so the well as
has been always being the default styling language for jews over it's not just a standard so it's meant to be portable it's unfortunately XML days quite verbal was well that had hard to handle it no and whenever in this presentation i'm gonna show this of so the is gonna be 11 unbeaten not the entire starship because as I said it's long and then we have a duty assess and if you pay attention during the conference you have seen several variants of CSS languages of up to 2 to the needs of cartographic displaying none of them is a standard and the what is he hasn't worked on it here as far as I know so Mr. Lee is 1 of them is incompatible with each other but on the bright side they tend to be very compact and very is a going so it's utterly much faster to to build a nice time in SC assessed that might using a so the the way she says is implemented in the server is also kind of nice because it's utterly out of CSS to us so the translator so if you didn't care the right a this the world translate will do it for you OK so I have an
example map and I want to describe the bits and pieces of it we have visitors from all the countries border some
roads of some or all the points of interest buildings drop
shadows some feels
labels and some of patches and utterance in fields and the alliance song and
describe a more or less how this has been done using both the vessel so the inverse assessing that's stronger to start with the rest of society
because if factories it's 1 day
and digital aversion model is off and SRT and model coming from US Gs and this using a very standard color maps so In this is a so the uh economic is made of entries of a core to quantity uh within the mental prosody and and the engine will just linearly interpolates between the colors and the value creating digital elevation model map that we have seen on them in case we don't want our specific or to see that a showing the up sorry we are going to specify capacity for the rest of the world this CSS a simplex is pretty much
equivalent one-to-one but I just made 1 change in the 19 it to show that a linear interpolation is not the only way to display a thermopile on we can also display by intervals for instead of linearly interpolating we we're going to have a shot changes under the control use as you can see the same that's for CSS or the column up entry is pretty pretty similar to the castle the what's in this case the CSS is not that much more the short term non so the and hang on just a minute you'll see that things are gonna change pretty quickly
so this I mean all through this section hatches buttons that she's on plates which is about to learn using little symbols or longer lines on or inside polygons to create the symbology the 1st example they have this
feeling with patterns the is that we have a legal icon here it so it's like on coming from OpenStreetMap and it's a little gradient symbol but it as you can see there is also a green area around it and in a so the you will turn it into a posterior by using a graphic feel inside the polygon symbolize around saying well OK I want this symbol to be repeated over and over side of the polygon to create my but the other sister syntax is quite a bit circle more compact is just 1 line and then we're basically saying OK let's user this market as that as a symbol for uh that has to be repeated over and over inside the polygon in both cases you can see that the the URL to the author the labeling which is a relative 1 here means that we have a fishing from inside that that they so it's something that we can actually move around with the data that we don't know with patients we can do something similar using
protype fonts in measures are we have the ability to extract a little symbols little from the shape so that we can then call or a feeling of according to our needs from various sources there as so this standard provides like 5 or 6 names so far well known names of 1 of the most like a square circle of men and the triangle and so on and just a extends quite a bit this syntax to allow for all the symbol providers to existing in this case we have a a TrueType font based in which we say OK I want to use a for type font and particularly the winnings 1 please get me this symbol that's there exhibition cold 55 and you can fetch the feet and then the code from the Windows charm up or the equivalent adenoma what we think are in this case we are also adding an extra vendor parameter tweak saying all OK but I don't want all the cross is to be exactly side-by-side back to back to each other actually wanted to space them out of it and so we did this graphic margin member option which is also available somewhere here probably a bit hidden um we we brightest spacing between 1 and 1 cross and and the next patches hatches
are pretty popular anything sure if they are around here it is not that we are going to feel a polygon with a diagonal line of vertical lines and what not so that the weather is below the politically shows through for this we have another instance of those extend the symbols that fiduciary users so that in this case it's the shape of so much less time so as to create a single cross which repeated gives the illusion of the cross and I have lines we can control the density of the parton by controlling the size of the market will make it very big it's gonna have of course the that their lines would be far away from each other if we choose them the small side is that there will be pretty close to each other this is the part of the year so the syntax unforeseen forces as we say OK and I use the times symbol as the feel and then we are using a little bit of magic here there there is this selective saying OK I wanted to specify something about being the fuel itself and I want to specify its color and size here I could have used the name color if it wanted to success of course both x and x of a similar colors or I could say being a black red or something like that so using the CSS main core here out there
some possible patch the symbols that we have a data to just a written ever your own if you want by only the programming or by using SVG icon that there are possibilities there she is the issues are the
idea that you don't want a solid line on on as a 0 symbology but you want a tool to have a space is unique somehow and uh this property stock addition Ray which is available as a symbol of the Soviet CSS is there the elements that drives it basically follows from of syntax in which you specify a number of pixel spent then down and then a number of pixels spend up and then a number of pixels spend on a solid and watch your father and you just started picking the cotton in case are you all only wanted of the provision of a up-and-down down and cannot be just provide 1 of 1 number like in this case and the result is altered line with if you
want something more complicated it's possible here I have and so the example of the using a graphic stroke uh and that is the idea that I'm taking a little single going to repeat it along the lines animal coupling into with that this talk mission right to say well OK being the 1 symbol and I want 18 pixels of white and then pay again that symbol and if this results in the application having holes in its and the I'm creating a coordinated line pattern in which I have them pixels down a forking pixels up there and with this then shelf said that the shelf is a tool that allows us to departure and so that it doesn't actually start from the beginning of the line but it starts a bit farther away and this allows you to move up the confidence that are isn't linked up well along the line and thus synchronize them so that I put 2 lines where the circles leave the space but this is another
example which is still talks about the use of self graphics inside the symbology this 1 is a different a little different and it's again 18 the then the extension to a so the way in which we allow someone to specify the graphic to be put to below the labels you know the leveling and zinc as a lot of fun machinery to take the label more weak along the line find a place which is suitable where the line is not too much to where uh we don't have all the labels are showing up in the same place uh so it's difficult to predict whether the level we show up that due to allow for a place in a similar uh symbology we allow to specify a graphic as a shield in in and the Texas symbolizes and this allows us to coordinate to the true 1 more extension that we have is this graphical seismographic margin now here I have specified as the sum as the graphic uh idea specified name so it's gonna be a square which is the 4th 1 uh and as you can see that and the graphics are not squares because I specify the stretch recites so where it takes a little simple and it actually about 6 to the shape of the of the label and I also specify the graphic managing so that the idea of some some space between the label and the symbol so the symbol nicely wraps the label and leaves a subspace and between the label and the Board of a single and
this is the equivalent of syntax in a so the positions is more compact and we're basically saying OK my she this is a square and I have again that should the size of should margin properties to control how to stretch and a lot of it the symbol and then I have this column shielded select or to say something about how the she lists of should be painted but this field of course just talked about college let's move towards HomoloGene
by symbology can be a bit annoying especially if you're trying to I show different types of the elements in the up say you have a map of points of interest and the maybe you have 12 of 15 20 different types of points of interest and you're in a so the you started having to do something like OK if my diving property have meant the FCC is a security 81 and if the name contains a shopping then OK it's going to be a shopping center and as a result I'm going to use this little icon which is a little shopping cart and then I have to move on to the next the symbol and so on and repeat myself many times a seceding then the various types of simple 4 points with their symbol the new disassembled becomes a 600 lines of firm of as so lever for just 6 different point types which is a bit painful it in a so
the idea of only 70 lines because I can actually be a centralized most of their uh I'm almost a what I I wanted to say that uh by doing all the right the so I basically set there the bayes a specification saying OK for this symbol I want and by default they want a circle and I want a label under it and I want it to be brought out there and so on and then for the specific case of the shopping carts I just all iden that that the belief that I want to changes so I just have to say something about the label once and this resulting 7 lines of CSS instead of 6 on the reliance of XML there's another
way to simplify this if we are willing to put some of them um elements driving the symbology inside our dataset if we have 1 of 2 butene our that the set that the gives us the name of the icon we should we should use we can use this as so the extension which is also available in CSS in which the age ref to the element is utterly containing a variable this blurred image and the mass is gonna be a attribute in our dataset containing the name of the image that we want to use and in this case of course it becomes much shorter because it we have 1 rule and we go differ and instead of them this is then it would be
equivalent to same taxing CSS as requested is marked the URL and again the little reference to that variable as part of the world and everything else is pretty much the same let's move on to the
labeling labeling is always a source of fun difficulties
getting um I'm not being properly labeled is difficult and then actually by itself does not provide a very many properties to control how we wanted the labeled we've shown so this is 1 of the areas in which the user has extended them off the s so this index providing a number of interruptions I invite you to go to the uh just over the condition website we have a dedicated page adjust for labeling because they're like 20 25 different little knobs that you can tune to to get the labels and the way you want uh in this particular case this particular roadmap has been obtained by can just have to uh place the labels along the line in which means also following whatever curve using the line man by repeating the labels every 250 pixels you can see the maple on label repeating over there we have challenges server to group there all the all the elements that have the same label into 1 seamless long line because typically brought network of broken at intersections so we actually have a a diagonal like 20 elements making up maple on and we don't want to label it 20 times and the uh we also allow just over to do what displacement of layer of the label so this a has an initial position of the label which would be at the center of the line and if that position is already be easy by an order of another labeled put by something else we allowed to server to move the label a bit farther up and down the line and this gives us a decent looking uh labeling for the for
the network that this is the equivalent style in in a CSS this is actually the full style so we have also the control over how the lines the on displaying not much to either there and the same parameters that we have just discussed here in in there the rule containing more and everything about the labels so a priority group followed by Texas placement and so on and when it comes to
point labels and there is not much to add that besides that we can control alter wrapping that is the idea that the file label is just to longer and there we don't want it to take on a lot of horizontal space we can tell just several well OK after 100 pixels please uh drop it on the next line and just a will find points in which doing like line wrapping is correct spaces and what not and put them the rest of the label in the next line if it doesn't treat the goes goes on and he just 4 5 lines as necessary if you want to control their the wrapping you can you can do that in just in your data you have to place new lines so that just over will we use them to to with the 1st round of breaking and if that's not enough it will bring the label for the when it comes to
polygonal labels we have a the same old to verapamil uh we have the same mean property as before we call it displacement which allows the label to move a little and which is also important because maybe then the natural in label position which is not like a centroid is not a carefully interview or is Baeza by another label and so on another thing that we added here is a goodness of fit which is the idea that they can control how much of the label workplace sits inside the polygon by default just over with painter label only artist of of it is inside a polygon 12 cases in which the polygon is super small and maybe the label is utterly 10 times bigger in that case we don't want to place the label most likely uh about him being in practice it's up to you you can choose the uh the fit value between 0 uh which is uh place it always and 1 a place if only if it completely fits inside the polygon on the other
thing that we have going in terms of labeling is that sometimes we wanted to market special elements in the cover the as the obstacles for labels so that labels to go over them uh 1 and uh this is 1 example of in which we say OK the polygon symbol uh sorry not the point and the point symbol is is obstacle for my labels and uh that's we're making sure that the labels are not going all over the legal Michael's of course this reduces the number of labels not showing up but increase legibility of them 0 by the way many of these things have been sponsored by crime if you're important for their own up until including this 1 and the wrapping and their labels along the line
scale-dependent rules this is some
kind of a very basic elements of that that you always need to use when making however that a like a printed map web maps are moves I scale linear so take that into account when creating 1 so change in the zone you should really try to change what you displaying uh build from a more a normalizable as a tool to more information start adding layers which are then set and then some information and uh this is controlled by as a set scale dependence is this is 1
example same matter but is zooming in out elements are starting to show up and actually disappear as I go so for example a start with only their digital elevation model and then polygon of them uh you're betting area and as ago I started adding roads and all the details and then when the the prose is good enough for the return of the digital elevation model which by this time has become too cost display it would be blocking in in order to control the
same so the we have a mean skill denominator masses giving a meaning uh in which we can say OK just display this symbology up to 1 270 thousand 75 thousand than uh which you will go to 1 to a hundred thousand please make it disappear and we have the opposite which is mock skill denominator which works the other way around uh and their equivalent to the CSS syntax uses up so the variable uh at scale and we just use comparison of operators to say which a range of scales we want copper
uh besides just showing and hiding there's also the technical firemaking alternative renderings so that those as we zoom mean we change the symbology in this case I switched from a single line to our time of a more complex think of aligned with their labels inside and alternative rendering a
as a said achieve the by adding minimax given the means of the various elements so that to work when 1 symbology turns off the other kinds of intestinal rocket science here
this is the example using CSS as you can see we we have a a region between that and thousand 75 thousand to that does 1 thing and then you there the control how what happens outside of it
the last bit of my presentation is about the transformations which is again on a set of extensions to have as you can see this map we have dropping
shadows below the polygons we are actually not really dropping shallow by just taking the polygon shifting at a bit using the offset function which is here uh seems your the function of certain and moving it to a few pixels away and then a paint anything of dark gray and then I think the point and you be users there with the use symbology and that the overall effect is of and dark shadow and the same can be done with and
CSS with them so much real much more readable syntax is saying OK uh when you're going to feel that degrade this geometry in isn't is not going to be the original 1 but the 1 obtained by applying an offset of of a certain amount of there's uh on on the job the and there is a much
deeper way to transform the data which is rendering transformation the concept here is I'm taking the whole dataset and I'm going to transform it before applying the style just geometry but everything else the attributes In this case what I'm going from a digital elevation model which is below it to go through a fence formation which is called contour that on the fly extracts that contour lines and that and not and not point I can style them as lines because I I turned out across the layer into electoral 1 and the performance is actually pretty good because we made we put a bit of magic to do their contour extraction of the current scalar visualizations so that we don't have to do too much water and we can do something similar for
example 4 point extraction here I'm trying to show what the values of the values pixels envisioned additional uh as points labels and in them but we can orders of
stuff like say I ever ask the dataset and I have some statistics about the various things that after success as the minimum and maximum value all 4 of that thruster and I don't want it to go every time and specifying a so the OK you go from these values that value where the going to peak the minimum and maximum from this statistics say OK 1 truck around the name GMT by applying this columns are coming from q j as by the way to Genesis field of legal colorants in SVG format and we are just 3 using them in the this allows to show the full dynamic range of the data and this is especially useful when looking at a methodological maps of sorts the
1 last thing we introduce a symbology for the win box uh and this and this is again a and well known marker extension so instead of the usual pointing whenever we have a syntax of uh where we can say OK you make me the symbol of a win marks up to 15 meters per 2nd that have to be located near the north and in the sphere and there we also have their through Northup angle correction going so that then when we say 45 degrees west it's utterly point into their rights that I shall regardless of the current much my production like if you're blue do American or it's not OK but if you're going Paula the north is is a whole different place and the point by point with the correction the and OK this is it
in that time yeah hi scientist user will have the ability to load of G unless there's a geo CSS or as a separate tool that converts geodesic CSS to holding on we have uh when you load at the CSS extension that there is only the user interface where that you can use to add it from the edges of a web up in their CSS style and then you press only the submit button and I the same time it will generate the so the and may make you a little not preview so that you can see how our our you are doing so you can use it interactively developers not press and there's more in the version of uh 2 6 so we actually added the ability to edit the CSS also from their main aspire ladies are uh which is not so great because in the main study the following you don't have the preview bottle what's great is that you can actually now pulsed CSS by the SPP eyes so that if you are doing I don't know anything over assessing the web front-end you can put a troika just server in just over I think for you which was possible before so I'm so recall for the CSS uh movement forward and I can't say I've done about 30 styles or something in some basics you for people that don't know to be very clear is a preview that's built in the in the CSS editing environment so when you you can see it and make a change in more along the lines of the fire off Firefox Firebug type standing analysis so my question those about the roadmap for CSS in 2 . 5 it's very much a 2nd edition that you must install and then it creates this environment so is that is it you're plans to keep it on a separate development track to be updated or more integrated into 6 going forward or or what it's really more integrated as was saying just a moment ago you can already edit CSS ties from the main stylistic or uh because right now just server has is the extension point for slightly language so you can like being in love multiple styling languishing in just over as if they were uh they native 1 uh and so uh there is no more than consolation to up to a so the that has to be scoring in the tool you can actually put the so the using the rest API and translation crucially will happen but it will happen automatically you don't have to do anything in the translation to a so the keeps on happening because of the whole of rendering engine is based on object model which is designed against this the and then having to maintain 2 different renderers for so the in CSS would be that some quite a bit of work but decides that the ideas so the sort of CSS extension is everything scholar and there is just 1 person that's working on it or else the that is not working on it because uh no changes has have happened during the last year or more give-and-take but I'm sort writing it fully into our as a Jew module so that more people can I can work on it and then my plan is to make it the 1st Fuller replacement for the all scholar version and then start to other some bits and pieces coming from less year sensors such as variables and all the elements that would allow their success to be even more compact and maintainable the the a regarding the point symbol categories to that support nesting as well who know it doesn't what kind of testing that you think for instance you can specify uh you know you have a default symbol specified and you can picture attribution in which features of the symbol elements you would change the size of the fella whatever and genuine nest within that so in other words have subcategories for your attributes and then change additional symbol elements some it's the ice
cascading I think so yeah I mean there and you can make more rules and just over right whatever property you want and the new during a variety you can go there to breathe and so you can pick from your after abusive you want mean it's pretty flexible and that there is also a number of transformation functions that we we call them that way uh categorize interpolate and so that would allow you to write
in just a single line of transition from 1 color to the the uh so in a single attribute in a single line without having to make many rules so there are various options on to we use duet passion sometimes find when we're doing labeling we don't get quite the results with facts and applied around a little bit with buffers and things button other income general tips you have lateral file breaking
out this global no in distribution of income and then the net result is that a tall he shows we have to kill at every level the across the tiles normally you can reduce this effect of this killing by using as which is the typical way of Thai catches due to do with it but of course of matter does more the the oscillations so if you have no I'm not labeling energy which is a smart enough to place all the labels for all your map 1 shot and then you can tell just server there's a new option which has been introduced by IGN which is the national French National Cartographic uh which is a pretty good maps which is server and uh they added this option to but I just have a well OK I know the level is going to cross that there uh and and the CPI more than the painted anyways I'm assuring you the or the end of the level will will show up in the manner because the the so the scale dependencies in there a new civilization and curious how old just servers calculating that scale given that it's gonna have an unknown resolution on the output and based on as the size of the viewer itself it's accepting it uh if you have a background in cryptography prepare yourself because there and the answer is gonna blow you away or provided I formula to calculate today and scale of which is pixel based not meet their based so 1st 2nd and when you are on opposite the system is actually pretty easy I mean it's just to the extent of their of them up uh over the number of pixels in it uh um but to when you are working in a in the latitude longitude the kind of thing that is utterly are super simplified formula that basically assumes the Earth is a cylinder this is not a solved and that I know it's cycling but uh in its simplicity it allows for interoperability because pretty much anyone can implement it correctly link uh there like a latest versions user we also there are parameters that you can Argentina in their quest to force just server to use the genetic distance point by point on the diagonal of the of them out there to do I Not great Scott's case complication which 1 be absolutely compatible with anything outside of their because nobody does it but it's great for for printing so what about thank you that the


  389 ms - page object


AV-Portal 3.20.1 (bea96f1033d39fbe77f82542458e108105398441)