Project

General

Profile

MapRestServiceExamples » History » Version 51

Franck Theeten, 05/17/2013 04:20 PM

1 1 Andreas Kohlbecker
2 7 Andreas Kohlbecker
3 1 Andreas Kohlbecker
4 40 Niels Hoffmann
5 1 Andreas Kohlbecker
# Examples for URI requests to the Map REST Service
6 40 Niels Hoffmann
7
8
{{>toc}}
9
10 1 Andreas Kohlbecker
11
12 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. 
13 1 Andreas Kohlbecker
14 23 Pere Roca Ristol
This page give some usage examples of the [[MapRestServiceApi|Map REST Service API]].
15
16 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.
17 1 Andreas Kohlbecker
18 42 Niels Hoffmann
19 1 Andreas Kohlbecker
20 43 Niels Hoffmann
----
21 1 Andreas Kohlbecker
22
23 43 Niels Hoffmann
24 50 Franck Theeten
## WMS and Layers
25
26
27
The WMS bound to the service is http://edit.africamuseum.be/geoserver/ (don't forget the trailing slash).
28
29
30
31 51 Franck Theeten
The services is displays TDWG and vmap0 layers (http://gis-lab.info/qa/vmap0-eng.html) imported in the "topp" namespace.
32 50 Franck Theeten
33
34
35
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.
36
37
38
39
Alternatively, you can also use the "preview layer" part of the graphical interface of GeoSerber
40
41
http://edit.africamuseum.be/geoserver/web/;?wicket:bookmarkablePage=:org.geoserver.web.demo.MapPreviewPage
42
43
44
45
46 1 Andreas Kohlbecker
If you have request or questions on the available layer contact franck.theeten @ africamuseum.be
47 51 Franck Theeten
48
49
50
## Description of layers
51
52
53
Since 2011, any layer registered in the WMS can be used in distribution maps and haveits style dynamically defined in the HTTP GET paraeters (originally this functionnality was limited to TDWG layers).
54
55
56
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 donot 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 attribute has a text format (you cannot apply filter on integer column).
57
58
59
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) 
60
61
62
e.g:
63
64
65
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
66
67
68
69 50 Franck Theeten
70
71
72 9 Andreas Kohlbecker
## Map REST Service - Version 1
73 3 Andreas Kohlbecker
74 1 Andreas Kohlbecker
_ Does not conform to the latest syntax definition! _
75
76
77 9 Andreas Kohlbecker
78 41 Niels Hoffmann
### Distribution Maps
79 9 Andreas Kohlbecker
80 35 Andreas Kohlbecker
Service URL: http://edit.br.fgov.be/edit_wp5/v1/areas.php
81 3 Andreas Kohlbecker
82 5 Andreas Kohlbecker
83 1 Andreas Kohlbecker
84 17 Andreas Müller
85 41 Niels Hoffmann
#### Basic Issues
86 17 Andreas Müller
87 24 Pere Roca Ristol
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.
88
89
90 26 Pere Roca Ristol
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).
91 25 Pere Roca Ristol
92 1 Andreas Kohlbecker
93 26 Pere Roca Ristol
We provide world country borders and all TDWG levels as background. This parameter must be specified in "l" parameter (l=earth in that example).
94
95
96
Current codes for background layers are:
97
98
99
-Country borders: earth
100
101
102
-TDWG level 1: tdwg1
103
104
105
-TDWG level 2: tdwg2
106
107
108
-TDWG level 3: tdwg3
109
110
111
-TDWG level 4: tdwg4
112
113
114 1 Andreas Kohlbecker
~~~
115 22 Pere Roca Ristol
<code class="html">
116 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/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" />
117 1 Andreas Kohlbecker
~~~
118
119
~~~
120 6 Andreas Kohlbecker
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
121 34 Pere Roca Ristol
&as=a:8dd3c7,,1&ms=500&bbox=-180,-90,180,90
122 6 Andreas Kohlbecker
~~~
123
124
125 1 Andreas Kohlbecker
126 17 Andreas Müller
127 41 Niels Hoffmann
####  Recalculate Parameter
128 1 Andreas Kohlbecker
129 25 Pere Roca Ristol
We see here the "recalculate" parameter in action. 
130
131
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. 
132
133
134
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.
135
136
137
138 6 Andreas Kohlbecker
~~~
139
<code class="html">
140 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/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" />
141 25 Pere Roca Ristol
~~~
142
~~~
143
<code class="html">
144 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/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" />
145 1 Andreas Kohlbecker
~~~
146
147 25 Pere Roca Ristol
~~~
148
l=earth&ad=tdwg3:a:PHI,VAN,BOR|b:BIS,SUM&as=a:8dd3c7,,2|b:e91f16,5be166,,2_4&ms=500&label=1
149
~~~
150 7 Andreas Kohlbecker
~~~
151
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
152
~~~
153
154
155 17 Andreas Müller
156 1 Andreas Kohlbecker
157 41 Niels Hoffmann
####  Different TDWG Layers
158 1 Andreas Kohlbecker
159 26 Pere Roca Ristol
You can mix different TDWG layers. In that case, TDWG level 3 and TDWG level 1.  
160
161
162
No background layer is defined, so you simply get the specified areas. 
163
164 7 Andreas Kohlbecker
~~~
165 1 Andreas Kohlbecker
<code class="html">
166 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/areas.php?ad=tdwg3:b:ZIM|a:SPA,ITA||tdwg1:b:2&as=a:d7add2|b:ab8dc9F&ms=300,200&label=1" />
167 7 Andreas Kohlbecker
~~~
168
169
~~~
170 26 Pere Roca Ristol
ad=tdwg3:b:ZIM|a:SPA,ITA||tdwg1:b:2&as=a:d7add2|b:ab8dc9F&ms=600,300&label=1
171 1 Andreas Kohlbecker
~~~
172
173 3 Andreas Kohlbecker
174 1 Andreas Kohlbecker
175 41 Niels Hoffmann
#### Symbolize Parameters
176 34 Pere Roca Ristol
177 18 Andreas Müller
A more complex styling. The parameters for styling an area are:
178 27 Pere Roca Ristol
179 28 Pere Roca Ristol
180 27 Pere Roca Ristol
-Area fill color
181
182 28 Pere Roca Ristol
183 27 Pere Roca Ristol
-Area stroke color
184
185 28 Pere Roca Ristol
186 27 Pere Roca Ristol
-Area stroke width
187
188 28 Pere Roca Ristol
189 27 Pere Roca Ristol
-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).
190 1 Andreas Kohlbecker
191 27 Pere Roca Ristol
192 33 Pere Roca Ristol
193 28 Pere Roca Ristol
We allways provide default values. So, you could even specify styles "a" and "b"  as a:|b: and the image will be generated. 
194 27 Pere Roca Ristol
195 28 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.
196 27 Pere Roca Ristol
197 28 Pere Roca Ristol
198 19 Andreas Müller
~~~
199 1 Andreas Kohlbecker
<code class="html">
200 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/areas.php?l=tdwg1&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" />
201 18 Andreas Müller
~~~
202 1 Andreas Kohlbecker
203 18 Andreas Müller
~~~
204 27 Pere Roca Ristol
l=tdwg1&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
205 1 Andreas Kohlbecker
~~~
206
207 18 Andreas Müller
208 41 Niels Hoffmann
#### Map Legends
209 18 Andreas Müller
210 28 Pere Roca Ristol
A legend can be appended to your map in different positions. 
211 16 Andreas Kohlbecker
212 1 Andreas Kohlbecker
213 28 Pere Roca Ristol
Specify "title" parameter, associating to each style the desired legend. Also legend=1 and "mlp" (map legend position) 
214 1 Andreas Kohlbecker
215
216 28 Pere Roca Ristol
It is important to assign, for each style, a title, otherwise cause error.
217 1 Andreas Kohlbecker
218
219 34 Pere Roca Ristol
220 28 Pere Roca Ristol
The map legend position can be:
221 1 Andreas Kohlbecker
222 28 Pere Roca Ristol
223
-1: outside of the map, up left 
224
225
226
-2: outside of the map, up 
227
228
229
-3:outside of the map, up right 
230
231
232
-4: outside of the map, below left
233
234
235
-5: inside of the map, below right
236
237
238
-6:  inside of the map, below left
239
240
241
-7:  inside of the map, up right
242
243
244
245
~~~
246
<code class="html">
247 35 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/areas.php?l=tdwg1&legend=1&mlp=3&title=a:foreign|b:native|c:rare|d:unknown&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" />
248 28 Pere Roca Ristol
~~~
249
250 1 Andreas Kohlbecker
~~~
251 28 Pere Roca Ristol
l=tdwg1&legend=1&mlp=3&title=a:foreign|b:native|c:rare|d:unknown&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
252 1 Andreas Kohlbecker
~~~
253 34 Pere Roca Ristol
A separate service generating legend is working, so you can put the legend wherever you want on your html. 
254 28 Pere Roca Ristol
255 34 Pere Roca Ristol
256
257 28 Pere Roca Ristol
~~~
258 1 Andreas Kohlbecker
<code class="html">
259 36 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/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"/>
260 28 Pere Roca Ristol
~~~
261 29 Pere Roca Ristol
~~~
262 36 Andreas Kohlbecker
http://edit.br.fgov.be/edit_wp5/v1/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
263 1 Andreas Kohlbecker
~~~
264 29 Pere Roca Ristol
265
266
267 41 Niels Hoffmann
#### Hatching Patterns
268 29 Pere Roca Ristol
269 30 Pere Roca Ristol
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.
270 1 Andreas Kohlbecker
271 29 Pere Roca Ristol
272 1 Andreas Kohlbecker
The second parameter of "symbols"  specifies the size of the image used for hatching.
273 30 Pere Roca Ristol
274 17 Andreas Müller
275 33 Pere Roca Ristol
~~~
276 16 Andreas Kohlbecker
<code class="html">
277 1 Andreas Kohlbecker
<img src="http://edit.br.fgov.be/edit_wp5/v1/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/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"/>
278 35 Andreas Kohlbecker
~~~
279 1 Andreas Kohlbecker
~~~
280
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
281 30 Pere Roca Ristol
~~~
282 16 Andreas Kohlbecker
283
284 1 Andreas Kohlbecker
285 32 Pere Roca Ristol
#### Using MapRest on a webmapping application
286 30 Pere Roca Ristol
287 43 Niels Hoffmann
All these mapping services can be used on a dynamic webmapping application like [OpenLayers](http://openlayers.org/.) 
288 30 Pere Roca Ristol
289 1 Andreas Kohlbecker
290
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. 
291 31 Pere Roca Ristol
292 32 Pere Roca Ristol
293 31 Pere Roca Ristol
With some little javascript coding you can get dynamic maps (zoom in/out, panning...).
294 1 Andreas Kohlbecker
295 30 Pere Roca Ristol
296
Some EDIT dataportals using this technology are PalmWeb (http://dev.e-taxonomy.eu/dataportal/palmae/) and Cichorieae (http://dev.e-taxonomy.eu/dataportal/cichorieae/)
297
298 1 Andreas Kohlbecker
299
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...
300 30 Pere Roca Ristol
301
302
303 34 Pere Roca Ristol
[{[bbox]("-28.267,27.664,72.65,81.851",)
304 30 Pere Roca Ristol
305 36 Andreas Kohlbecker
[legend]("http://edit.br.fgov.be/edit_wp5/v1/sld/4e9b417a9789481932b57e53c47291c6.sld",) 
306 30 Pere Roca Ristol
307
308
[layers":[[{"tdwg" "tdwg3""session" """sld" "tdwg3_4e9b417a9789481932b57e53c47291c6sld"}|{"tdwg": "tdwg1","session": "","sld]() "tdwg1_4e9b417a9789481932b57e53c47291c6.sld"}]]}] 
309
310
311
312
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.
313
314
315
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. 
316
317
 By this way you can avoid distorted images that too often happen with "image" MapRest services.
318
319
320 16 Andreas Kohlbecker
321
322
323 41 Niels Hoffmann
### Occurrence Maps
324 1 Andreas Kohlbecker
325 36 Andreas Kohlbecker
Service URL: http://edit.br.fgov.be/edit_wp5/v1/points.php
326 4 Andreas Kohlbecker
327 1 Andreas Kohlbecker
328
MapRest services also can plot occurrences. Just specify each point data coordinates (in latitude/longitude) 
329
330
331 33 Pere Roca Ristol
This service is subject to changes soon.
332 32 Pere Roca Ristol
333 33 Pere Roca Ristol
334 32 Pere Roca Ristol
Current symbolization parameters are:
335 17 Andreas Müller
336 1 Andreas Kohlbecker
337 32 Pere Roca Ristol
-symbol: you can choose "c" (a circle),  "s" (a star), and "sq" (square)
338 20 Pere Roca Ristol
339 10 Andreas Kohlbecker
340 32 Pere Roca Ristol
-symbol size
341 10 Andreas Kohlbecker
342 13 Andreas Kohlbecker
343
-a name to be used on the legend
344 1 Andreas Kohlbecker
345
346 10 Andreas Kohlbecker
347 32 Pere Roca Ristol
348 33 Pere Roca Ristol
Also a "q_layer" has to be specified. It must be the same than the background layer and is used to calculate the bbox. 
349 1 Andreas Kohlbecker
350
351
352 34 Pere Roca Ristol
ATBI sites like Gemer (http://www.atbi.eu/gemer/) and Mercantour/Alpi-Marittime (http://www.atbi.eu/mercantour-marittime/) are already using this service.
353 33 Pere Roca Ristol
354
355 1 Andreas Kohlbecker
Also point occurrences can be mapped on a dynamic webmapping application but it is still not implemented.
356
357
358
359 14 Andreas Kohlbecker
~~~
360 8 Andreas Kohlbecker
<code class="html">
361 39 Niels Hoffmann
<img src="http://edit.br.fgov.be/edit_wp5/v1/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" />
362 8 Andreas Kohlbecker
~~~
363
364
~~~
365 47 Franck Theeten
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
366
~~~
367
368 49 Franck Theeten
369 47 Franck Theeten
370
371
## Map REST Service - Version 2
372
373
_ Does not conform to the latest syntax definition! _
374
375
376
377
### Distribution Maps
378
379
Service URL: 
380
381
http://edit.br.fgov.be/edit_wp5/v1.2/rest_gen.php
382
383
http://edit.br.fgov.be/edit_wp5/v1.2/points.php
384
385
http://edit.br.fgov.be/edit_wp5/v1.2/areas.php
386
387
388
rest_gen.php merges the functionnalities of points.php and areas.php. 
389
390 48 Franck Theeten
points.php and areas.php are still available as aliases to rest_gen for backward compatibility reasons.