Thank you for clarifying. This makes a lot of sense and yes SVG is basically a set of drawing instructions to the renderer.

However when separating structure from style like one does with HTML and CSS, an SVG could look like this:

<svg>...<g id="tertiary-asphalt"><path name="Foo road" d="over there"></g>...</svg>

Then on the client there is a style sheet with

#teriary-asphalt path {fill: yellow; stroke:gray; }

I’ve created a script that generated an svg like this and was very satisfied with the results:

  • 3 to 4 zoom levels can be packed into 1
  • file size of 30kb covers about 12 PNG files.
  • didn’t need a 5th of the vector points I had estimated.

I also found that some assumptions need to be made on the server. For instance which languages should be included. (Maybe in a separate file or concatenate on request based on http request lang)

I am on vacation right now, I will share the result when I get back.