Developer Reference World Vector Shoreline

NOAA, who we admire greatly, make freely available a world vector shoreline. This is a comma separated value (CSV) file containing the coordinates for a few massive (continent sized) geographic polygons and a load of island outlines.

To produce the Chersoft WVS: We took it and fixed some errors, filtered it, rearranged it into scale bands and added some islands that were missing. Obviously it's Not for Navigation. You need real charts for navigation.

Why have a vector shoreline? Because having a world shoreline backdrop is very useful. Actually in some applications it's all the chart you need. It allows people to quickly find the bit of the world that they are interested in. Even with some proper charts most of the time people don't have worldwide chart coverage - so if they zoom out too far they can "lose" their place in the World. Try it in one of the sample applications - it's not good.

NEW Single File WVS

From ENCX version 3.1, we now offer a single file world vector shoreline. This obviously makes its depolyment much easier for you than the S-57 SENC alternative. You can also change how the land, borders, outlines and lakes appear or even if the WVS data is drawn at all, using the new WVSSettings object available from S57Draw.

We've only included a small sample version covering the UK, Ireland and a bit of Europe with the ENCX installer. You can find this in C:\Program Files (x86)\ENCX SDK\WVS_Demo. However, the full version of the single file WVS is available to download from What's more, unlike the S-57 version, you can view this without an ENCX licence.

If you prefer, you can still use the S-57 SENC version of the WVS but its use is now deprecated - see below.

To use the new WVS, simply download and unzip it to get the wvs.cvcf file and use:

senc.OpenSencAndWVS(libr, path_to_your_SENC, path_to_the_wvs.cvcf_file)
Note that the second parameter of OpenSencAndWVS can be used to reference either the new single file WVS or the old S-57 WVS SENC.

The WVSSettings object has the following properties:

  • LandColour- ARGB colour of land.
  • LandOutlineColour - ARGB colour of coastlines.
  • LakeColour - ARGB colour of lakes.
  • BorderColour - ARGB colour of political borders.
  • RiverColour - ARGB colour of rivers.
  • LandOutlineWidth - pixel width of coastlines.
  • BorderWidth- pixel width of political borders.
  • RiverWidth - pixel width of rivers.
  • Show - boolean to show or hide the WVS.

Please see the WVSDemo sample code for more information.


ENCX will display our WVS SENC if you have a licence. Please get in touch for an evaluation license.

You can download the data from  (The old world vector shoreline can still be downloaded from here.)

This zip contains an ENC chart folder (sometimes called a SENC). You can unzip it and open it with an S57Manager object. For example you could just unzip it somewhere and modify the EncView1 sample to display it. Just like I've done...

senc.OpenSenc(libr, "d:\charts\wvs_1")

EncView1 sample displaying the World Vector Shoreline

How to integrate the Chersoft WVS into your apps

There are two approaches to using the WVS in your programs. The decision is yours - a configuration choice that depends on your customers, and how much control they get over their chart folders - whether they need to be able to run multiple folders and so on. So here are the approaches:

Use two separate chart folders

This is what we do in our Navigation systems. We keep the WVS data separate from the chart data that the user buys and installs. They can do what they will with their chart folder - decide where on the disk it goes, delete it, recreate it, whatever. But we keep the WVS somewhere else and we install it with the app.

When we draw S-57 chart we first draw the WVS as a bottom layer and then draw their S-57 data afterwards.

Prior to ENCX version 3, this meant that you needed to implement two S57Manager objects and two S57Draw objects, one for ENC and one for WVS data.

From version 3.0, you can simply call OpenSencAndWVS rather than OpenSenc and specify the path to the folder containing the WVS SENC as well as the path to the ENC SENC folder.  Alternatively, if you use OpenSenc2, you can specify the folder of the WVS SENC by setting the WVSPath property on your S57ManagerInitialisationData object.

Merge the data into your chart folder

A lot of people merge the WVS data and their customer's data. This works best if there's one true location for the Chart Folder. The SENC Directory file makes this a little harder than it used to be - there's an extra couple of steps to make sure there is a correct directory file in there.

First, you need to copy the contents of the WVS SENC's cells folder into the cells folder of your chart folder. You might be starting from an empty chart folder that you have made using ManageENC. The problem these days is that the SENC's directory folder must contain a directory file pointing to all the chart cells. You haven't got entries for the cells that you have manually copied in the directory file.

There are two solutions to this.

  1. From ENCX version 2.2, you can programatically rebuild the directory file by calling the RefreshDirectory method on ManageENC.Manager class.
  2. Alternatively ManageENC will recreate a directory file either when charts are installed or when there isn't a directory file. So just delete the directory folder and then run ManageENC, point it at the chart folder and it will make you a directory file.

Pointing ManageENC at your SENC to regenerate the directory file