@@ -47,7 +46,7 @@ LAYER
END
```
-There are a few points to note in this Mapfile.
+There are a few points to note about this Mapfile.
## Include Files
@@ -80,7 +79,7 @@ END
## Composite Blocks
-A [COMPOSITE](https://mapserver.org/mapfile/composite.html) block is used on the layer to make it 20% transparent.
+A [COMPOSITE](https://mapserver.org/mapfile/composite.html) block is used to make the layer 20% transparent.
## Code
diff --git a/workshop/content/docs/inputs/vector.md b/workshop/content/docs/inputs/vector.md
index 92960b0..82daeaf 100644
--- a/workshop/content/docs/inputs/vector.md
+++ b/workshop/content/docs/inputs/vector.md
@@ -19,7 +19,7 @@ MapServer documentation.
## Remote Datasets using Virtual File Systems
GDAL's [Virtual File Systems](https://gdal.org/user/virtual_file_systems.html) can be used to
-access data over stored on a network, for example on a server or Amazon S3 bucket.
+access data stored on a network, for example on a server or Amazon S3 bucket.
```scala
CONNECTIONTYPE OGR
@@ -75,7 +75,7 @@ than a huge GeoTIFF file.
END
```
- In the `stars.js` you will need to ensure the `milkyway` layer is added to the OpenLayers map:
+ In the `stars.js` file you will need to ensure the `milkyway` layer is added to the OpenLayers map:
```js
params: { 'LAYERS': 'constellations,stars,stars2,milkyway'},
diff --git a/workshop/content/docs/introduction/commandline.md b/workshop/content/docs/introduction/commandline.md
index a58aeb0..b4b4e3d 100644
--- a/workshop/content/docs/introduction/commandline.md
+++ b/workshop/content/docs/introduction/commandline.md
@@ -19,7 +19,7 @@ INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF
```
When run through a web server, data is passed to the `mapserv` application, which generates output that is then sent back through the web server.
-All web requests can be recreated and tested on the command line, this makes it a handy debugging tool.
+All web requests can be recreated and tested on the command line, making it a handy debugging tool.
To test a URL such as
run the following command:
@@ -31,13 +31,13 @@ This will output a PNG image to the command line - this will look like garbage!
We can save the output by redirecting it to a file using `>`.
As the `mapserv` program returns responses for a web client it also returns HTTP headers. To create a valid image file we need to strip these
-header by using the `-nh` (no headers) switch.
+headers by using the `-nh` (no headers) switch.
```bash
mapserv -nh "QUERY_STRING=map=/etc/mapserver/countries.map&mode=map" > /etc/mapserver/test.png
```
-`test.png` should now be on your local disk at `getting-started-with-mapserver/workshop/exercises/mapfiles`.
+`test.png` should now be available on your local disk at `getting-started-with-mapserver/workshop/exercises/mapfiles`.

@@ -45,7 +45,7 @@ mapserv -nh "QUERY_STRING=map=/etc/mapserver/countries.map&mode=map" > /etc/maps
The `docker-compose.yml` file maps local folders to folders on the Docker container. Files created in the Docker
container will be visible on your local disk, and files on your local disk will be visible in the container.
- This is set in in the `volumes` section, using the syntax ` - LOCAL_FOLDER:CONTAINER_FOLDER`
+ This is set in the `volumes` section, using the syntax ` - LOCAL_FOLDER:CONTAINER_FOLDER`
```yaml
volumes:
diff --git a/workshop/content/docs/introduction/docker.md b/workshop/content/docs/introduction/docker.md
index a6f00a2..1284cb8 100644
--- a/workshop/content/docs/introduction/docker.md
+++ b/workshop/content/docs/introduction/docker.md
@@ -6,12 +6,12 @@ We will be using MapServer on a Docker image for the workshop. This ensures that
A custom MapServer Docker image has been created for the workshop, and the Dockerfile is found [here](https://github.com/MapServer/getting-started-with-mapserver/blob/main/docker/Dockerfile).
-MapServer runs on the Apache web server - see the [Apache page](../advanced/apache.md) page for further details.
+MapServer runs on the Apache web server - see the [Apache page](../advanced/apache.md) for further details.
-It uses the Apache [mod_fcgid module](https://httpd.apache.org/mod_fcgid/), module that provides FastCGI support.
+It uses the Apache [mod_fcgid module](https://httpd.apache.org/mod_fcgid/), a module that provides FastCGI support.
MapServer runs on port `8080` on the Docker container, which is mapped to port `7000` on the local machine, as can be seen in the Docker compose file
-located at `workshop\exercises\docker-compose.yml`:
+located at `workshop/exercises/docker-compose.yml`:
```yaml
mapserver:
@@ -30,7 +30,7 @@ located at `workshop\exercises\docker-compose.yml`:
## JavaScript Application
-A second container that serves the JavaScript example pages is also run using Docker. This uses Node and runs on port 7001 on both the container and the host machine.
+A second Docker container serves the JavaScript example pages. This uses Node and runs on port 7001 on both the container and the host machine.
```yaml
node:
diff --git a/workshop/content/docs/introduction/introduction.md b/workshop/content/docs/introduction/introduction.md
index 6cd4626..ba1e785 100644
--- a/workshop/content/docs/introduction/introduction.md
+++ b/workshop/content/docs/introduction/introduction.md
@@ -18,17 +18,17 @@ MapServer. Both vector data and raster data are covered.
4. MapServer **Outputs**. These exercises show how MapServer can publish data. When first
created MapServer was used to produce map images, but now it can serve data out in
-a large number of open geospatial formats. Focus is given to [OGC](https://www.ogc.org/standards/)
+a large number of open geospatial formats. The focus is on [OGC](https://www.ogc.org/standards/)
standards as these are free, open and interoperable.
5. **Advanced** topics. These are a collection of miscellaneous exercises that cover
a wide range of MapServer functionality. Selected exercises will be chosen based on the
-needs to the workshop participants. MapServer has over 25 years of development and
+needs of the workshop participants. MapServer has over 25 years of development and
features, so new topics will be added over time.
## Workshop Outline
-Below is a rough timeline for how the timings of the 4-hour workshop, with a 15 minute break.
+Below is a rough timeline for the 4-hour workshop, including a 15-minute break.
These can be adapted based on the needs of the participants.
- 0h00 - 0h30 - Introduction to the workshop, Docker setup and tests
@@ -43,7 +43,7 @@ These can be adapted based on the needs of the participants.
## Test the Docker Compose config
Before making any changes, we will make sure that the initial Docker Compose
-setup provided to you is actually working. The configuration file for Docker Compose is found at the following location:
+setup provided to you is actually working. The Docker Compose configuration file is located at:
* `workshop/exercises/docker-compose.yml`
@@ -59,9 +59,9 @@ setup provided to you is actually working. The configuration file for Docker Com
2. Open in your browser, you should see an error message!
3. Close by pressing `CTRL-C`
-# Displaying your First Map
+# Displaying Your First Map
-- Ensure that you have MapServer setup and running at .
+- Ensure that you have MapServer set up and running at .
- Now try opening the following MapServer URL in your browser -
diff --git a/workshop/content/docs/introduction/mapserver.md b/workshop/content/docs/introduction/mapserver.md
index 8101476..26d8a77 100644
--- a/workshop/content/docs/introduction/mapserver.md
+++ b/workshop/content/docs/introduction/mapserver.md
@@ -24,7 +24,7 @@ In its most basic form, MapServer is a CGI program that sits inactive on your we
A Mapfile is used to define the data contained in a map and how it will be displayed.
-Mapfiles are text files, that contain hierarchical and nested blocks. An annotated Mapfile is displayed below:
+Mapfiles are text files that contain hierarchical and nested blocks. An annotated Mapfile is displayed below:
``` scala
--8<-- "countries.map"
@@ -34,7 +34,7 @@ Mapfiles are text files, that contain hierarchical and nested blocks. An annotat
## MapServer development
-The first release of MapServer was in 1997, and is written in a combination of C and C++.
+The first release of MapServer was in 1997 and is written in a combination of C and C++.
A summary of MapServer development from [OpenHub](https://openhub.net/p/MapServer) is shown below:
@@ -43,7 +43,7 @@ A summary of MapServer development from [OpenHub](https://openhub.net/p/MapServe
## MapServer dependencies
MapServer is built on several image rendering and geospatial C/C++ libraries.
-The below image shows MapServer's key dependencies:
+The image below shows MapServer's key dependencies:

@@ -52,4 +52,4 @@ This means that improvements and features in libraries like GDAL also become ava
## Interacting with MapServer
Before services like WMS and WFS were added to MapServer, interaction was done using the custom keywords listed on the
-[MapServer CGI Controls](https://mapserver.org/cgi/controls.html) page.These are still available for use in MapServer, but this workshop will focus on OGC services. For example we will use the [WMS](https://mapserver.org/ogc/wms_server.html) protocol to display the MapServer layer on top of an OSM background using OpenLayers.
+[MapServer CGI Controls](https://mapserver.org/cgi/controls.html) page. These are still available for use in MapServer, but this workshop will focus on OGC services. For example we will use the [WMS](https://mapserver.org/ogc/wms_server.html) protocol to display the MapServer layer on top of an OSM background using OpenLayers.
diff --git a/workshop/content/docs/introduction/openlayers.md b/workshop/content/docs/introduction/openlayers.md
index 3c8bd36..63b949c 100644
--- a/workshop/content/docs/introduction/openlayers.md
+++ b/workshop/content/docs/introduction/openlayers.md
@@ -18,9 +18,10 @@ The HTML pages are served using a Docker container, and when the containers are
running an index page for all workshop exercises is available at .
The HTML files used in the workshop are located in `exercises/app`.
-The JavaScript files can be found in `exercises/app/js`. These files can be edited, and changes viewed in the browser.
+The JavaScript files can be found in `exercises/app/js`. These files can be edited and changes viewed in the browser.
-To display MapServer WMS services we use an [ImageLayer](https://openlayers.org/en/latest/apidoc/module-ol_layer_Image-ImageLayer.html) with a [ImageWMS](https://openlayers.org/en/latest/apidoc/module-ol_source_ImageWMS-ImageWMS.html) source.
+To display MapServer WMS services we use an [ImageLayer](https://openlayers.org/en/latest/apidoc/module-ol_layer_Image-ImageLayer.html)
+with an [ImageWMS](https://openlayers.org/en/latest/apidoc/module-ol_source_ImageWMS-ImageWMS.html) source.
These are created as follows:
@@ -33,12 +34,12 @@ new ImageLayer({
}),
```
-The `LAYERS`parameter can be set to the Mapfile `MAP NAME` to show all layers, or you can add individual
+The `LAYERS` parameter can be set to the Mapfile `MAP NAME` to show all layers, or you can add individual
layers using a comma-separated list of `LAYER NAME`.
## WMS
-We use the WMS protocol to serve out data. To configure this in our Mapfiles we need to include the following `WEB` block:
+We use the WMS protocol to serve data. To configure this in our Mapfiles we need to include the following `WEB` block:
```scala
WEB
@@ -51,7 +52,7 @@ END
## Centres and Extents
-In our OpenLayers maps we often want to set a starting extent or centre for the map. If our Mapfile contains an EXTENT in a different projection we can use the GDAL programs installed on the Docker image to convert coordinates to the OpenLayers projection:
+In our OpenLayers maps we often want to set an initial extent or centre. If our Mapfile contains an `EXTENT` in a different projection we can use the GDAL programs installed on the Docker image to convert coordinates to the OpenLayers projection:
```bash
diff --git a/workshop/content/docs/mapfile/labels.md b/workshop/content/docs/mapfile/labels.md
index 9f44374..e118d8e 100644
--- a/workshop/content/docs/mapfile/labels.md
+++ b/workshop/content/docs/mapfile/labels.md
@@ -2,7 +2,7 @@
## Overview
-In this exercises we'll look at labelling features in a map. We'll be using a lakes dataset from the original Itasca County, Minnesota MapServer demo.
+In this exercise we'll look at labelling features in a map. We'll be using a lakes dataset from the original Itasca County, Minnesota MapServer demo.
@@ -10,8 +10,8 @@ In this exercises we'll look at labelling features in a map. We'll be using a la
## Labels
-[LABEL](https://mapserver.org/mapfile/label.html)s are placed within a `CLASS`.
-Each class can label features differently.
+[LABEL](https://mapserver.org/mapfile/label.html) elements are placed within a `CLASS`.
+Each class can label features differently from others.
Here is the `LABEL` block used in our example:
@@ -31,7 +31,7 @@ END
## Label Positions
-We use the [centerline](https://mapserver.org/mapfile/geomtransform.html#centerline) function as part of a [GEOMTRANSFORM](https://mapserver.org/mapfile/geomtransform.html) expression:
+We use the [centerline](https://mapserver.org/mapfile/geomtransform.html#centerline) function within a [GEOMTRANSFORM](https://mapserver.org/mapfile/geomtransform.html) expression:
``` scala
GEOMTRANSFORM (centerline(densify([shape], 0.1)))
@@ -62,7 +62,7 @@ GEOMTRANSFORM (centerline(densify([shape], 0.1)))
1. Use a different font for the label by adding the following to the `LABEL` block: `FONT MonsieurLaDoulaise` and increasing the `SIZE` to `28`.
The list of fonts available can be found in `workshop/exercises/mapfiles/data/fonts/fontset.txt`.
2. Comment out the `GEOMTRANSFORM (centerline([shape]))` and `ANGLE FOLLOW` lines (using `#`) to see its effect on the map.
-3. If you have time, download a font you like from and unzip the .TTF file to `workshop/exercises/mapfiles/data/fonts/`
+3. If you have time, download a font from and unzip the .TTF file to `workshop/exercises/mapfiles/data/fonts/`
add a new entry to `fontset.txt` and use this font to draw your Map labels.