sc-boundary
This document is a user guide for the sc-boundary component version 5.26, released May 1, 2019.
1 Purpose
sc-boundary places a map field on a form with the option to combine the map with an address search and street address fields.
Map buttons provide the ability to draw points, circles, lines, quadrilaterals and polygons on the map, delete a drawing, zoom in, zoom out, toggle full screen and select a view mode (Map, Satellite, Street). Mouseover of a map button will display a button tooltip.
The sc-boundary definition provides fields for setting the properties of a sc-boundary field and is fully described below.
2 Definition
sc-boundary is defined by a set of name/value pair fields consisting of:
- Required system fields
- Required customizable fields
- Optional customizable fields
Note:
- Default values for fields described in the tables below are shown in bold text.
- Most fields below use a single name/value pair to define a property of the sc-boundary component e.g.
"mandatory": true
.
Whereas the field"geocodeSearchService"
requires a set of name/value pair fields to define a property of the sc-boundary component. The tables below provide a summary description of this field and a link to an Appendix that has the detailed description. The link to this Appendix is also listed below.
2.1 Required System Fields
Field | Valid Values | Description |
---|---|---|
componentName | sc-boundary | The component name. Example: "componentName": "sc-boundary" |
2.2 Required Customizable Fields
Field | Valid Values | Description |
---|---|---|
name | Any value written in camel case. | Defines the name of the sc-boundary field in the document and database. Example: "name": "testScBoundary" |
2.3 Optional Customizable Fields
Field | Valid Values | Description |
---|---|---|
addressEntry | true | Display a combined map, address search and street address fields on a form. Entering a full or partial address in the address search field will return a list of matching addresses. Selecting a returned address will populate the street address fields and will centre and zoom the map on that address. Example: "addressEntry": true |
false | Default value. Display just the map field on the form. |
|
color | Valid colour value | The colour for points, lines and polygons drawn on the map. Colours are specified using predefined color names, colour Hex values or colour RGB values. Examples: "color": "red" "color": "#FF0000" "color": "rgb(255, 0, 0)" |
black | Default value. | |
country | Valid country code | Used by the geocode service to improve its performance. E.g. address searches will restrict results to the defined country. To avoid conflicts, recommend using either this country field or the geocoderDefaultCountry field within the geocodeSearchService field to specify a country, but not both.Example: "country": "au" |
Defaults to the "geocoderDefaultCountry" if one exists, otherwise no restriction on country. | ||
disableMouseWheel | true | Disables the ability to zoom the map using the mouse wheel. Example: "disableMouseWheel": true |
false | Default value. Enables the ability to zoom the map using the mouse wheel. |
|
disableSave | true | Changing the sc-boundary field value (i.e. drawing a point, line, polygon, etc on the map) does not trigger the Save icon to flash. Exiting the form without saving changes to the sc-boundary field value does not trigger a warning message to display. In the Angular version of the sc-boundary component, clicking the Save icon will not save the sc-boundary field value to the document. In the AngularJS version of the sc-boundary component, clicking the Save icon will save the sc-boundary field value to the document. Example: "disableSave": true |
false | Changing the sc-boundary field value (i.e. drawing a point, line, polygon, etc on the map) does trigger the Save icon to flash. Exiting the form without saving changes to the sc-boundary field value does trigger a warning message to display. In both the Angular and AngularJS versions of the sc-boundary component, clicking the Save icon will save the sc-boundary field value to the document. |
|
enabled | false | Address search field, address field, drawing buttons and delete drawing button are disabled, removing the ability to search for or enter and address and to draw or delete points, lines, polygons, etc on the map. A Stop icon appears on mouseover of address search field, address fields, drawing buttons and delete drawing button. The buttons to zoom in/out, toggle full screen and select map view remain enabled. Example: "enabled": false |
true | Default value. Address search, address fields and all buttons (drawing, delete drawing, zoom in/out, toggle full screen and map view) are enabled. Points, lines, polygons, etc can be drawn or deleted on the map. A Stop icon does not appear on mouseover of address search field, address fields, drawing buttons or delete drawing button. |
|
EPSG | Valid EPSG SRID | EPSG is a spatial coordinate system used to locate geographical entities on a map, a map being a 2D projection of the 3D earth's surface or a region of the earth's 3D surface. There are many 2D projections, each using different properties to represent distances, angles or areas. Certain projections are better suited for different regions in the world. An EPSG SRID (Spatial Reference System Identifier) value identifies a specific 2D projection coordinate system together with the region of the earth it covers. Examples: EPSG:3111 is the projection coordinate system used for rendering a 2D map of the state of Victoria (between 140.9500, -39.1500 and 149.9800, -34.0000). Example: "EPSG": "EPSG:3111" |
EPSG:3857 | Defaults to the Web Mercator projection (EPSG:3857) which is used to render a map of the world (between 85.06°S and 85.06°N) for online mapping applications such as Google Maps, OpenStreetMaps, OpenLayers, Bing and ESRI. | |
fullWidth | true | The sc-boundary field displays full width on the form. Example: "fullWidth": true |
false | Default value. The sc-boundary field does not display full width on the form. |
|
geocodeSearchService | Array of name/value fields | An array of geocode service definitions, each defining the properties of a geocode service. A geocode service provides geocoding and reverse geocoding functionality. Note: Reverse geocoding functionality is not a requirement of sc-boundary and hence a geocode service definition needs only to include the name/value fields pertaining to geocoding functionality. sc-boundary uses the geocodeSearchService field in conjunction with "addressEntry": true to provide geocoding functionality.Geocode service providers include Google, Geocode.Farm, Vicmap, PSMA and psmafarm. See Appendix A: geocodeSearchService Field for a detailed description of the geocodeSearchService field. |
heightNum | numeric | Defines the height of the boundary map field as a multiple of a standard height. Example: "heightNum": 2 |
1 | Default value. The height of the boundary map field defaults to 1 standard height. |
|
label | Any value | Defines the name of the boundary field on the form i.e. the field label. Example: "label": "Test sc-boundary" |
Defaults to no label is displayed. | ||
mandatory | true | The sc-boundary field displays as mandatory (i.e. label in red text with an asterisk). Saving without a value (i.e. drawing a point, line or polygon on the map), a message prompts the user to enter a value for the sc-boundary field. Example: "mandatory": true |
false | Default value. The field displays as optional (i.e. label in black text). |
|
mapParameters | Set of name/value fields | A set of name/value pair fields that define the properties of the map. Section 2.4 mapParameters Field lists and describes the name/value fields for defining the properties of the map. |
searchDelay | Integer | On entering criteria into the address search field, the number of milliseconds to wait until the address search function is called. Example: "searchDelay": 1500 |
Defaults to the value set in the Environment Configuration document for the "clientConfiguration"."searchDelay" field, or to 500 milliseconds if that isn't set. | ||
searchMinLength | Integer | The minimum number of characters, excluding trailing spaces, that need to be entered into the address search field before the address search function is called. Example: "searchMinLength": 5 |
3 | Default value. | |
visible | false | The sc-boundary field is not visible on the form. Example: "visible": false |
true | Default value. The boundary field is visible on the form. |
2.4 mapParameters Field
The "mapParameters" field in Section 2.3 Optional Customizable Fields is a set of name/value fields defining the properties of the map.
This section lists and describes the name/value fields for defining properties of the map.
2.4.1 Optional Customizable Fields
Field | Valid Values | Description |
---|---|---|
defaultLat | Valid latitude | The latitude, written as a decimal, at which to initially centre the map field. Valid latitude values range from 0 to (+/–)90. Example: "defaultLat": -37.9563 |
-37.8 | Default value. | |
defaultLon | Valid longitude | The longitude, written as a decimal, at which to initially centre the map field. Valid longitude values range from 0 to (+/–)180. Example: "defaultLon": 145.0407 |
144.9 | Default value. | |
defaultZoom | Integer | The level at which to initially zoom the map field. Example: "defaultZoom": 15 |
10 | Default value. | |
mapViews | Array of map view definitions | An array of map view definitions, each defining the properties of a map view. Each map view definition is a set of name/value pair fields, some being required, some being optional. Section 2.3 mapViews Field lists and describes the fields for defining the properties of a map view. |
2.4.2 mapViews Field
The "mapViews" field in Section 2.4.1 Optional Customizable Fields is an array of map view definitions, each defining the visual parameters (e.g. 2D projection, resolution, zoom level) of a map view.
This section lists and describes the fields for defining the properties of a map view.
Field | Valid Values | Description |
---|---|---|
apiKey | Valid API key | Your API key, if required by the map server. Map servers are used to share geospatial data. Examples of map servers are Google and Geoserver. Example: "apiKey": "your API key" |
serverType | The server for sharing geospatial data. | |
geoserver | An open source server for sharing geospatial data. Used for web based maps such as OpenLayers and Bing Maps. Example: "serverType": "geoserver" |
|
tile | A server providing maps as tiles i.e. splitting the map up into images. Example: "serverType": "tile" |
|
Default value. Google server for sharing geospatial data. Example: "serverType": "google" |
||
url | url address to communicate with a particular geoserver for geospatial data. | |
Vicmap url | Vicmap geoserver for geospatial data. Example: "url": "https://base.maps.vic.gov.au/service" |
|
Formbird OSM url | Formbird geoserver for Open Street Map (OSM) geospatial data. Example: "url": "https://osm.formbird.com/tiles/{z}/{x}/{y}.png" |
2.4.3 Example
"mapParameters": {
"defaultLon": 144.9,
"defaultLat": -37.8,
"defaultZoom": 15,
"mapViews": [
{
"serverType": "google",
"apiKey": "place your google keyid here"
}
]
}
3 Typical Definition
When using the Google map server, below is a typical sc-boundary definition, defined with its required fields plus any optional field whose value is typically other than its default value.
{
"componentName": "sc-boundary",
"color": "red",
"fullWidth": true,
"heightNum": 2,
"label": "Test sc-boundary",
"name": "testScBoundary",
"mapParameters": {
"defaultLon": 144.9,
"defaultLat": -37.8,
"defaultZoom": 15,
"mapViews": [
{
"apiKey": "place your google keyid here",
"serverType": "google"
}
]
}
}
One or more of the optional fields shown below can be included in the above definition should a value other than their default value be required.
"addressEntry": true,
"country": "au",
"disableMouseWheel": true,
"disableSave": true,
"enabled": false
"mandatory": false,
"searchDelay": 1500,
"searchMinLength": 5,
"visible": false
4 Examples
Example 1
sc-boundary defined:
- With the typically needed fields
- To use Google for sharing geospatial data.
- To place a map field on a form.
{
"componentName": "sc-boundary",
"fullWidth": true,
"name": "test1ScBoundary",
"label": "Test 1 sc-boundary using google for geospatial data",
"heightNum": 2,
"color": "red",
"mapParameters": {
"defaultLon": 144.9,
"defaultLat": -37.8,
"mapViews": [
{
"apiKey": "place your google keyid here",
"serverType": "google"
}
],
"defaultZoom": 15
}
}
Resulting field displayed on the form:
Resulting field displayed on the form after drawing a point, a line, a circle, a polygon and a rectangle:
Resulting sc-boundary field saved in the document and database:
"test1ScBoundary": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
144.88703956604002,
-37.798914879250155
]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
144.89081611633299,
-37.79711761294367
]
},
"properties": {
"radius": 151.0916366374728
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
144.8918460845947,
-37.80027127769669
],
[
144.8942922592163,
-37.79867750696124
],
[
144.8960947036743,
-37.800305187338715
],
[
144.89399185180662,
-37.80033909696519
],
[
144.89360561370847,
-37.80200064959227
],
[
144.8920606613159,
-37.801559833150286
],
[
144.8918460845947,
-37.80027127769669
]
]
]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
144.89639511108396,
-37.79820276009505
],
[
144.89875545501707,
-37.796981968428945
],
[
144.89982833862302,
-37.79874532769305
],
[
144.90128746032713,
-37.797965385517784
]
]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
144.90077247619627,
-37.80244146340335
],
[
144.90497817993162,
-37.80244146340335
],
[
144.90497817993162,
-37.80074601126857
],
[
144.90077247619627,
-37.80074601126857
],
[
144.90077247619627,
-37.80244146340335
]
]
]
},
"properties": {}
}
]
}
Example 2
sc-boundary defined to:
- Use geoserver for sharing geospatial data.
- Place a combined map, address search and street address fields in a form.
- Use PSMA geocode service for geocoding address search field values.
{
"componentName": "sc-boundary",
"addressEntry": true,
"color": "red",
"EPSG": "EPSG:4326",
"fullWidth": true,
"geocodeSearchService": [
{
"autocompleteUrl": "https://api.psma.com.au/predictive/address?query=",
"geocodeUrl": "https://api.psma.com.au/beta/v1/addresses?radius=",
"name": "psma",
"apiKey": "place your psma keyid here",
"addressUrl": "https://api.psma.com.au/predictive/address/"
}
],
"heightNum": 2,
"label": "Test sc-boundary 3",
"name": "testScBoundary3",
"searchDelay": 1500,
"searchMinLength": 6,
"mapParameters": {
"defaultLat": -37.8,
"defaultLon": 144.9,
"defaultZoom": 15,
"mapViews": [
{
"serverType": "geoserver"
}
]
}
}
Resulting field displayed on the form:
Resulting field on the form after entering a partial address in the address search field:
Resulting field on the form after clicking the first matching address:
The map centers on the selected address.
Resulting field on the form after saving a drawn boundary:
Resulting sc-boundary field saved in the document and database:
"test2ScBoundary": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": 1,
"geometry": {
"type": "Point",
"coordinates": [
0.0013029223623502598,
-0.0003409671053873353
]
},
"properties": {
"icon": "images/marker.png"
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
0.00130292241968983,
-0.0003409710309512093
],
[
0.0013029264593157925,
-0.00034097158851409404
],
[
0.0013029252632401464,
-0.0003409771942841644
],
[
0.001302921361782192,
-0.00034097638447860845
],
[
0.00130292241968983,
-0.0003409710309512093
]
]
]
},
"properties": null
}
]
}