Project

General

Profile

MapRestServiceExamples » History » Version 67

Andreas Kohlbecker, 11/28/2016 02:49 PM

1 1 Andreas Kohlbecker
# Examples for URI requests to the Map REST Service
2 40 Niels Hoffmann
3
{{>toc}}
4
5 1 Andreas Kohlbecker
6 23 Pere Roca Ristol
Integrate clear colourful maps into your own website or application. Choose data sources and adapt colour, symbology, extent, background textures and line types to fully customise your map. 
7 1 Andreas Kohlbecker
8 23 Pere Roca Ristol
This page give some usage examples of the [[MapRestServiceApi|Map REST Service API]].
9
10 42 Niels Hoffmann
Be aware that these examples do *not conform to RFC 3986*, as the current implementation still doesn't follow the proposed syntaxis. It means that the syntaxis of these examples (and MapRest Services) may change in the coming weeks.
11 1 Andreas Kohlbecker
12 43 Niels Hoffmann
----
13 1 Andreas Kohlbecker
14
15 50 Franck Theeten
## WMS and Layers
16
17
The WMS bound to the service is http://edit.africamuseum.be/geoserver/ (don't forget the trailing slash).
18
19 57 Franck Theeten
Since December 2012, this service use the version 2.2.2 of GeoServer.
20 50 Franck Theeten
21 53 Franck Theeten
The services displays TDWG and vmap0 layers (http://gis-lab.info/qa/vmap0-eng.html) imported in the "topp" namespace.
22
23
The list of layers can be accessed by executing a WMS GetCapabilties request on the "topp" dataset: 
24
25
http://edit.africamuseum.be/geoserver/topp/wms?service=WMS&request=GetCapabilities.
26
27
Alternatively, you can also use the "preview layer" part of the graphical interface of GeoServer
28
29
http://edit.africamuseum.be/geoserver/web/;?wicket:bookmarkablePage=:org.geoserver.web.demo.MapPreviewPage
30
31 57 Franck Theeten
If you have requests or questions related to the available layers contact franck.theeten @ africamuseum.be
32 53 Franck Theeten
33
## Description of layers
34
35 64 Andreas Kohlbecker
Since 2011, any layer registered in the WMS can be used in distribution maps and have its style dynamically defined in the HTTP GET parameters (this functionality was originally limited to TDWG layers).
36 53 Franck Theeten
37 64 Andreas Kohlbecker
When building a query, the programmer needs to know the structure of a layer (i.e. the name and the type of fields) since some functionalities do not work on numeric attributes. For instance, you can define a filter to apply a style on specific values (like names of countries), but only if the corresponding attribute in the database has a text format (you cannot apply filter on integer column).
38 53 Franck Theeten
39
It is possible to get an XML describing the types and fieldnames of a layer by running a WFS query "DescribeFeature" on GeoServer like in the example below ("typename" being the name of the layer) 
40
41
e.g:
42
43
http://edit.africamuseum.be/geoserver/topp/wfs?service=WFS&version=1.1.0&request=DescribefeatureType&typename=topp:vmap0_afsa_hydro_inland_water_prm_only_a
44
45 54 Franck Theeten
=> in the answer "xsd:string" corresponds to attributes having a text type that can be used in filter. 
46
47 53 Franck Theeten
# Examples for URI requests to the Map REST Service
48
49
{{>toc}}
50
51
52
Integrate clear colourful maps into your own website or application. Choose data sources and adapt colour, symbology, extent, background textures and line types to fully customise your map. 
53
54
This page give some usage examples of the [[MapRestServiceApi|Map REST Service API]].
55
56
Be aware that these examples do *not conform to RFC 3986*, as the current implementation still doesn't follow the proposed syntaxis. It means that the syntaxis of these examples (and MapRest Services) may change in the coming weeks.
57 1 Andreas Kohlbecker
58 53 Franck Theeten
----
59
60
## WMS and Layers
61
62
The WMS bound to the service is http://edit.africamuseum.be/geoserver/ (don't forget the trailing slash).
63
64
The services is displays TDWG and vmap0 layers (http://gis-lab.info/qa/vmap0-eng.html) imported in the "topp" namespace.
65 50 Franck Theeten
66 1 Andreas Kohlbecker
The list of layers can be accessed by executing a WMS GetCapabilties request on the "topp" dataset: http://edit.africamuseum.be/geoserver/topp/wms?service=WMS&request=GetCapabilities.
67
68
Alternatively, you can also use the "preview layer" part of the graphical interface of GeoSerber
69 50 Franck Theeten
70
http://edit.africamuseum.be/geoserver/web/;?wicket:bookmarkablePage=:org.geoserver.web.demo.MapPreviewPage
71 1 Andreas Kohlbecker
72 50 Franck Theeten
If you have request or questions on the available layer contact franck.theeten @ africamuseum.be
73
74
## Description of layers
75
76 51 Franck Theeten
Since 2011, any layer registered in the WMS can be used in distribution maps and have its style dynamically defined in the HTTP GET parameters (this functionnality was originally limited to TDWG layers).
77
78
When building a query, the programmer needs to know the structure of a layer (i.e. the name and the type of fields) since some functionnalities do not work withnumeric attributes. For instance, you can define a filter to apply a style on specific values (like names of countries), but only if the correponding attribute in the database has a text format (you cannot apply filter on integer column).
79 1 Andreas Kohlbecker
80
It is possible to get an XML describing the types and fieldnames of a layer by running a WFS "DescribeFeature" query on GeoServer like in the example below ("typename" being the name of the layer) 
81 51 Franck Theeten
82
e.g:
83
84
http://edit.africamuseum.be/geoserver/topp/wfs?service=WFS&version=1.1.0&request=DescribefeatureType&typename=topp:vmap0_afsa_hydro_inland_water_prm_only_a
85
86 53 Franck Theeten
=> in the answer: "xsd:string" corresponds to attribute having a test format that can be used in filter. 
87 51 Franck Theeten
88 1 Andreas Kohlbecker
89
## Map REST Service - Version 1
90 51 Franck Theeten
91 65 Andreas Kohlbecker
*Does not conform to the latest syntax definition!*
92 53 Franck Theeten
93 51 Franck Theeten
### Distribution Maps
94 50 Franck Theeten
95
Service URL: http://edit.africamuseum.be/edit_wp5/v1.2/areas.php
96 1 Andreas Kohlbecker
97
98 50 Franck Theeten
#### Basic Issues
99 1 Andreas Kohlbecker
100 9 Andreas Kohlbecker
Map Image size is specified as 400 pixels width. It means the height will be 200 pixels (just the half). Attention: you cannot specify an odd number as width/height.
101 1 Andreas Kohlbecker
102
A bounding box (bbox) is specified. We strongly recommend to use bbox if know it (for example if all your data is on the same zone).
103
104 9 Andreas Kohlbecker
We provide world country borders and all TDWG levels as background. This parameter must be specified in "l" parameter (l=earth in that example).
105
106 62 Andreas Kohlbecker
Current codes for background layers are:
107 3 Andreas Kohlbecker
108 65 Andreas Kohlbecker
* Country borders: earth
109
* TDWG level 1: tdwg1
110
* TDWG level 2: tdwg2
111
* TDWG level 3: tdwg3
112
* TDWG level 4: tdwg4
113 1 Andreas Kohlbecker
114 26 Pere Roca Ristol
115 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=earth&ad=tdwg3:a:PHI,VAN,BAN,SRL,VIE,MOL,CHC,CRL,JAW,FIJ,SUM,MYA,MLY,NWG,MRN,AND,CHH,BOR,IND,CHS,THA,TAI,LAO,SUL,BIS,CBD,SOL,ASS&as=a:8dd3c7,,1&ms=500&bbox=-180,-90,180,90)
116 26 Pere Roca Ristol
117
~~~
118
l=earth&ad=tdwg3:a:PHI,VAN,BAN,SRL,VIE,MOL,CHC,CRL,JAW,FIJ,SUM,MYA,MLY,NWG,MRN,AND,CHH,BOR,IND,CHS,THA,TAI,LAO,SUL,BIS,CBD,SOL,ASS
119
&as=a:8dd3c7,,1&ms=500&bbox=-180,-90,180,90
120
~~~
121 1 Andreas Kohlbecker
122 26 Pere Roca Ristol
####  Recalculate Parameter
123
124
We see here the "recalculate" parameter in action. 
125
126 34 Pere Roca Ristol
When the bbox is not specified, the service will calculate it and try to fit the image to the specified dimensions (width/height). It can cause distorted images. 
127 6 Andreas Kohlbecker
128
Recalculate=true (this is the default if nothing is specified) tries to avoid these distortions. It means also that in some cases the final image size will change as you can see in the first image.
129
130 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=earth&ad=tdwg3:a:PHI,VAN,BOR|b:BIS,SUM&as=a:8dd3c7,,2|b:e91f16,5be166,,2_4&ms=500&label=1)
131 1 Andreas Kohlbecker
132 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=earth&ad=tdwg3:a:PHI,VAN,BOR|b:BIS,SUM&as=a:8dd3c7,,2|b:e91f16,5be166,,2_4&ms=500&label=1&recalculate=false)
133 25 Pere Roca Ristol
134
~~~
135
l=earth&ad=tdwg3:a:PHI,VAN,BOR|b:BIS,SUM&as=a:8dd3c7,,2|b:e91f16,5be166,,2_4&ms=500&label=1
136 1 Andreas Kohlbecker
~~~
137 6 Andreas Kohlbecker
~~~
138
l=earth&ad=tdwg3:a:PHI,VAN,BOR|b:BIS,SUM&as=a:8dd3c7,,2|b:e91f16,5be166,,2_4&ms=500&label=1&recalculate=false
139 62 Andreas Kohlbecker
~~~
140 25 Pere Roca Ristol
141
####  Different TDWG Layers
142 1 Andreas Kohlbecker
143 65 Andreas Kohlbecker
You can mix different TDWG layers. In that case, TDWG level 3 and TDWG level 1.
144 1 Andreas Kohlbecker
145
No background layer is defined, so you simply get the specified areas. 
146
147 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?ad=tdwg3:b:ZIM|a:SPA,ITA||tdwg1:b:2&as=a:d7add2|b:ab8dc9F&ms=300,200&label=1)
148 26 Pere Roca Ristol
149
~~~
150
ad=tdwg3:b:ZIM|a:SPA,ITA||tdwg1:b:2&as=a:d7add2|b:ab8dc9F&ms=600,300&label=1
151 7 Andreas Kohlbecker
~~~
152 1 Andreas Kohlbecker
153
#### Symbolize Parameters
154 62 Andreas Kohlbecker
155 7 Andreas Kohlbecker
A more complex styling. The parameters for styling an area are:
156
157 65 Andreas Kohlbecker
* Area fill color
158
* Area stroke color
159
* Area stroke width
160
* Area stroke dash style: we currently provide 1_2,1_4,2_2,2_4,5_7 and 10_5 but it can change. First parameter determine the length in pixels to draw the line, and the second, the length in pixels to blank out the line. As example, 5_7 means a very dashed line (separated 7 pixels one line from another).
161 41 Niels Hoffmann
162 65 Andreas Kohlbecker
We always provide default values. So, you could even specify styles "a" and "b"  as a:|b: and the image will be generated. 
163 28 Pere Roca Ristol
164 27 Pere Roca Ristol
A style like b:0000ff~2  would mean 0000ff fill color and 2 pixels stroke width. The other parameters would be set as default.
165
166 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=tdwg_level_1&ad=tdwg4:c:MXEDU|b:MXETA||tdwg3:a:MXC,CUB|b:MXE,MXG|c:MXS,MXT&as=a:329d2a,483eef,2,2_2|b:ab8dc9F,da1029,2,5_7|c:d2e347|d:f7555d&ms=500&bbox=-115,6.78,-75.19,29.8&recalculate=false)
167 61 Andreas Kohlbecker
168 28 Pere Roca Ristol
~~~
169 16 Andreas Kohlbecker
l=tdwg_level_1&ad=tdwg4:c:MXEDU|b:MXETA||tdwg3:a:MXC,CUB|b:MXE,MXG|c:MXS,MXT&as=a:329d2a,483eef,2,2_2|b:ab8dc9F,da1029,2,5_7|c:d2e347|d:f7555d&ms=700&bbox=-115,6.78,-75.19,29.8&recalculate=false
170 1 Andreas Kohlbecker
~~~
171 28 Pere Roca Ristol
172 1 Andreas Kohlbecker
#### Map Legends
173 28 Pere Roca Ristol
174 1 Andreas Kohlbecker
A legend can be appended to your map in different positions. 
175 28 Pere Roca Ristol
176
Specify "title" parameter, associating to each style the desired legend. Also legend=1 and "mlp" (map legend position) 
177
178
It is important to assign, for each style, a title, otherwise cause error.
179
180
The map legend position can be:
181
182 65 Andreas Kohlbecker
* 1: outside of the map, up left 
183
* 2: outside of the map, up 
184
* 3: outside of the map, up right 
185
* 4: outside of the map, below left
186
* 5: inside of the map, below right
187
* 6:  inside of the map, below left
188
* 7:  inside of the map, up right
189 28 Pere Roca Ristol
190 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=tdwg_level_1&legend=1&mlp=3&title=a:foreign|b:native|c:rare|d:unknown&ad=tdwg4:code:c:MXEDU||tdwg4:code:b:MXETA||tdwg3:code:a:MXC,CUB||tdwg3:code:b:MXE,MXG||tdwg3:code:c:MXS,MXT&as=b:ab8dc9F,da1029,2,5_7|c:d2e347|a:329d2a,483eef,2,2_2|d:f7555d&ms=500&bbox=-115,6.78,-75.19,29.8&recalculate=false)
191 60 Andreas Kohlbecker
192 28 Pere Roca Ristol
~~~
193 1 Andreas Kohlbecker
areas.php?l=tdwg_level_1&legend=1&mlp=3&title=a:foreign|b:native|c:rare|d:unknown&ad=tdwg4:code:c:MXEDU||tdwg4:code:b:MXETA||tdwg3:code:a:MXC,CUB||tdwg3:code:b:MXE,MXG||tdwg3:code:c:MXS,MXT&as=b:ab8dc9F,da1029,2,5_7|c:d2e347|a:329d2a,483eef,2,2_2|d:f7555d&ms=500&bbox=-115,6.78,-75.19,29.8&recalculate=false
194
~~~
195 34 Pere Roca Ristol
A separate service generating legend is working, so you can put the legend wherever you want on your html. 
196
197 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/legends.php?title=a:foreign|b:native|c:rare|d:unknown&as=a:329d2a,483eef,2,2_2|b:ab8dc9F,da1029,2,5_7|c:d2e347|d:f7555d&ms=60,50)
198 1 Andreas Kohlbecker
199 62 Andreas Kohlbecker
~~~
200 1 Andreas Kohlbecker
http://edit.africamuseum.be/edit_wp5/v1.2/legends.php?title=a:foreign|b:native|c:rare|d:unknown&as=a:329d2a,483eef,2,2_2|b:ab8dc9F,da1029,2,5_7|c:d2e347|d:f7555d&ms=60,50
201 29 Pere Roca Ristol
~~~
202
203
#### Hatching Patterns
204
205
You can also specify a hatch pattern. You need to fill "images_url" and  "symbols" for each pattern as shown below. The URL to the image can be remote or local.
206 1 Andreas Kohlbecker
207 17 Andreas Müller
The second parameter of "symbols"  specifies the size of the image used for hatching.
208 33 Pere Roca Ristol
209 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/areas.php?l=tdwg4&ad=tdwg4:c:MXEDU|b:MXETA|d:NICOO||tdwg3:a:MXC,CUB|b:MXE,MXG|c:MXS,MXT&as=b:d7add2,,3,|a:d7add2,ab899F,1,1_2|c:,,,10_5|d:&ms=500&images_url=a,c:edit.csic.es/v1.2/hatch_images|b:maps.massgis.state.ma.us/images&symbols=a,c:cow,10,gif|b:med_green_cross_hatch,30,gif&&bbox=-115,6.78,-75.19,29.8&recalculate=false)
210 16 Andreas Kohlbecker
211
~~~
212 1 Andreas Kohlbecker
l=tdwg4&ad=tdwg4:c:MXEDU|b:MXETA|d:NICOO||tdwg3:a:MXC,CUB|b:MXE,MXG|c:MXS,MXT&as=b:d7add2,,3,|a:d7add2,ab899F,1,1_2|c:,,,10_5|d:&ms=500&images_url=a,c:edit.csic.es/v1/hatch_images|b:maps.massgis.state.ma.us/images&symbols=a,c:cow,10,gif|b:med_green_cross_hatch,30,gif&&bbox=-115,6.78,-75.19,29.8&recalculate=false
213 32 Pere Roca Ristol
~~~
214 43 Niels Hoffmann
215 30 Pere Roca Ristol
#### Using MapRest on a webmapping application
216 1 Andreas Kohlbecker
217 31 Pere Roca Ristol
All these mapping services can be used on a dynamic webmapping application like [OpenLayers](http://openlayers.org/.) 
218
219 1 Andreas Kohlbecker
The question is that, if desired, we return back not an image but a file that specifies the path to the XML that is used for layer symbolization. 
220 30 Pere Roca Ristol
221 64 Andreas Kohlbecker
With some little javascript coding you can get dynamic maps (zoom in/out, panning...).
222
223 30 Pere Roca Ristol
Some EDIT dataportals using this technology are PalmWeb (http://dev.e-taxonomy.eu/dataportal/palmae/) and Cichorieae (http://dev.e-taxonomy.eu/dataportal/cichorieae/)
224
225
How to get this file to be integrated on webmapping application? just specify "img=false" and will get a JSON file that could be something similar to...
226
227 66 Andreas Kohlbecker
~~~json
228 30 Pere Roca Ristol
[{"bbox":"-28.267,27.664,72.65,81.851",
229 1 Andreas Kohlbecker
"legend":" http://edit.africamuseum.be/edit_wp5/v1.2/sld/4e9b417a9789481932b57e53c47291c6.sld",
230 62 Andreas Kohlbecker
"layers":[{"tdwg": "tdwg3","session": "","sld": "tdwg3_4e9b417a9789481932b57e53c47291c6.sld"},
231 4 Andreas Kohlbecker
{"tdwg": "tdwg1","session": "","sld": "tdwg1_4e9b417a9789481932b57e53c47291c6.sld"}]}]
232 65 Andreas Kohlbecker
~~~
233 33 Pere Roca Ristol
234 32 Pere Roca Ristol
As you can see, there is the name of XML (SLD) files that provide symbolization for each of specified TDWG layer. Also the legend is specified there.
235 33 Pere Roca Ristol
236 32 Pere Roca Ristol
With some javascript coding you can get dynamic maps. A big advantage of using these widgets is that they automatically calculate the scale at which the image has to be visualized. 
237 20 Pere Roca Ristol
238 65 Andreas Kohlbecker
By this way you can avoid distorted images that too often happen with "image" MapRest services.
239 32 Pere Roca Ristol
240 13 Andreas Kohlbecker
### Occurrence Maps
241 1 Andreas Kohlbecker
242 10 Andreas Kohlbecker
Service URL: http://edit.africamuseum.be/edit_wp5/v1.2/points.php
243 1 Andreas Kohlbecker
244
MapRest services also can plot occurrences. Just specify each point data coordinates (in latitude/longitude) 
245 33 Pere Roca Ristol
246 1 Andreas Kohlbecker
This service is subject to changes soon.
247
248
Current symbolization parameters are:
249 8 Andreas Kohlbecker
250 65 Andreas Kohlbecker
* symbol: you can choose "c" (a circle),  "s" (a star), and "sq" (square)
251
* symbol size
252
* a name to be used on the legend
253 47 Franck Theeten
254 49 Franck Theeten
Also a "q_layer" has to be specified. It must be the same than the background layer and is used to calculate the bbox. 
255 47 Franck Theeten
256
ATBI sites like Gemer (http://www.atbi.eu/gemer/) and Mercantour/Alpi-Marittime (http://www.atbi.eu/mercantour-marittime/) are already using this service.
257
258
Also point occurrences can be mapped on a dynamic webmapping application but it is still not implemented.
259
260 65 Andreas Kohlbecker
![](http://edit.africamuseum.be/edit_wp5/v1.2/points.php?l=v:e_w_0&od=1:38.326,-0.822|38.328,-0.542|38.062,-0.893||2:38.062,-0.893|38.012,-1.883||3:40.78,-4.009|43.461,-5.412|38.062,-0.893&os=1:c/f78755/10/Onthophagus%20semipunctatus|2:s/64cb48/10/Euoniticellus%20pallipes|3:sq/cbde4f/10/Onthophagus%20joannae&ms=700,350&bbox=-10,36,8,45&recalculate=true&legend=1)
261 59 Andreas Kohlbecker
262 47 Franck Theeten
~~~
263 59 Andreas Kohlbecker
l=v:e_w_0&od=1:38.326,-0.822|38.328,-0.542|38.062,-0.893||2:38.062,-0.893|38.012,-1.883||3:40.78,-4.009|43.461,-5.412|38.062,-0.893&os=1:c/f78755/10/Onthophagus%20semipunctatus|2:s/64cb48/10/Euoniticellus%20pallipes|3:sq/cbde4f/10/Onthophagus%20joannae&ms=700,350&bbox=-10,36,8,45&recalculate=true&legend=1
264 47 Franck Theeten
~~~
265 59 Andreas Kohlbecker
266 47 Franck Theeten
## Map REST Service - Version 2
267
268 56 Franck Theeten
The major improvement of version 2 is that transparency can be applied both on point data and overlay layers.
269 47 Franck Theeten
270 1 Andreas Kohlbecker
### Distribution Maps
271 57 Franck Theeten
272
Service URL: 
273
274 65 Andreas Kohlbecker
* http://edit.africamuseum.be/edit_wp5/v1.2/rest_gen.php
275
* http://edit.africamuseum.be/edit_wp5/v1.2/points.php
276
* http://edit.africamuseum.be/edit_wp5/v1.2/areas.php
277 57 Franck Theeten
278 65 Andreas Kohlbecker
* http://edit.africamuseum.be/edit_wp5/v1.4_dev/rest_gen.php
279
* http://edit.africamuseum.be/edit_wp5/v1.4_dev/points.php
280
* http://edit.africamuseum.be/edit_wp5/v1.4_dev/areas.php
281 57 Franck Theeten
282 65 Andreas Kohlbecker
"rest_gen.php" merges the functionalities of points.php and areas.php. 
283 58 Franck Theeten
284 1 Andreas Kohlbecker
"points.php" and "areas.php" are still available as aliases to rest_gen for backward compatibility reasons.
285 57 Franck Theeten
286
#### Compatibility with OGC syntax
287 58 Franck Theeten
288 57 Franck Theeten
Since version 1.2, the service compliant with the syntax version 2.2.2 of GeoServer. 
289
290
Geoserver follows now more strictly the OGC syntax than before, especially for legends, a point which created an importantbackward compatibility issue when upgrading Geoservber.
291 58 Franck Theeten
292 57 Franck Theeten
Since GeoServer 2.2.1, the syntax of the “GetLegendGraphic” request used in the original version of the PHP script was not valid anymore.
293
294
The previous version had this element in the URL: “...geoserver/GetLegendGraphic?service=WMS&…” 
295
296
...while GeoServer awaits now: “...geoserver/wms?REQUEST=GetGraphicLegend&…”
297
298
This has been fixed in version 1.2 and also commited back to version 1.1 
299
300
#### Merging point and area data
301
302
#### Transparency on overlay layers