Project

General

Profile

MapRestServiceExamples » History » Version 49

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