77[ ![ License] ( https://img.shields.io/github/license/ThalesGroup/PharoOWS.svg )] ( ./LICENSE ) 
88[ ![ Unit tests] ( https://github.com/ThalesGroup/PharoOWS/actions/workflows/CI.yml/badge.svg )] ( https://github.com/ThalesGroup/PharoOWS/actions/workflows/CI.yml ) 
99
10+ 
1011## :information_source :  Get started 
1112
1213A variety of protocols and standards exist to enable communication with map
@@ -20,135 +21,9 @@ facto standards, offering tools for querying map servers and parsing the
2021returned data.
2122
2223
23- ## :wrench :  Install 
24- 
25- PharoOWS can be installed using [ Metacello] ( https://github.com/Metacello/metacello ) :
26- 
27- ``` smalltalk 
28- Metacello new 
29-   baseline: 'OWS'; 
30-   repository: 'github://ThalesGroup/PharoOWS:main'; 
31-   load. 
32- ``` 
33- 
34- Dependencies are:
35- 
36-   -  [ XMLParser] ( https://github.com/pharo-contributions/XML-XMLParser ) 
37- 
38- 
39- ## :globe_with_meridians :  Geospatial services: OGC Standards and de facto Protocols 
40- 
41- Standard communication protocols with map servers can be divided into two main
42- categories:
43- 
44- 1 .  Official protocols defined by the Open Geospatial Consortium (OGC)
45- 2 .  De facto protocols that have emerged due to widespread use (such as XYZ)
46- 
47- ### 1. Formal OGC protocols  
48- 
49- ** Traditional OGC Services** 
50- 
51- These services are based on SOAP or HTTP protocols with specific requests often
52- constructed as URLs with parameters. They primarily exchange XML or other
53- specialized formats (XML for requests/responses, images for maps). These
54- standards have been widely used for many years to ensure geospatial
55- interoperability.
56- 
57- ``` console 
58- http://mapserver?SERVICE=WMS&REQUEST=GetMap&LAYERS=layer0,layer1 
59- ``` 
60- 
61- ** Modern RESTful Services** 
62- 
63- These adopt a RESTful architecture based on modern web principles. They use
64- simple HTTP methods (` GET ` , ` POST ` , etc.) and return responses in JSON. This
65- approach makes integration with applications easier due to its simplicity and
66- compatibility with current web technologies. OGC API - Features is a key
67- example of this new generation, providing standardized REST APIs for accessing
68- vector data.
69- 
70- ``` console 
71- http://mapserver/collections/layer0/items.json 
72- ``` 
73- 
74- ### 2. De facto standards  
75- 
76- Although not officially standardized by organizations like the OGC, protocols
77- such as TMS (Tile Map Service) and the XYZ URL scheme are widely adopted in web
78- mapping. Their simplicity and compatibility with modern web technologies have
79- made them essential de facto standards for serving map tiles.
80- 
24+ ## :books :  Documentation 
8125
82- ## :package :  PharoOWS : overview of supported protocols and standards 
83- 
84- PharoOWS is split into several packages according to the supported protocols
85- and standards:
86- 
87- |  Package           |  Type                  |  Supported Protocols               |  Status           | 
88- | -------------------| -----------------------| -----------------------------------| ------------------| 
89- |  OWS-TMS           |  De facto standard     |  TMS                               |  In development   | 
90- |  OWS-Service       |  Official OGC          |  WMS, WMTS                         |  In development   | 
91- |  OWS-API           |  Official OGC (modern) |  OGC API - Processes               |  Upcoming         | 
92- 
93- 
94- :loudspeaker :  PharoOWS is still in development, so new protocols and standards
95- will be added over time.
96- 
97- ## :computer :  Examples 
98- 
99- ### WMS  
100- 
101- ``` smalltalk 
102- | wms operations getmap layers size map | 
103- 
104- "Create a WMS client targeting the IGN WMS server" 
105- wms := OWSServiceWMS new. 
106- wms url: 'https://data.geopf.fr/wms-r'. 
107- 
108- "Introspect the server capabilities" 
109- operations := wms operations. 
110- 
111- # 'operations' is a XMLOrderedList( 
112- #   a OWSServiceWMSOperation <GetCapabilities> 
113- #   a OWSServiceWMSOperation <GetMap> 
114- #   a OWSServiceWMSOperation <GetFeatureInfo> 
115- # ) 
116- 
117- "Listing available image formats for maps" 
118- getmap := operations detect: [ :request | request name = 'GetMap' ]. 
119- getmap formats. 
120- 
121- # 'formats' is an OrderedCollection( 
122- #   image/jpeg 
123- #   image/png 
124- #   image/tiff 
125- #   image/geotiff 
126- #   image/x-bil;bits=32 
127- # ) 
128- 
129- "Listing available layers" 
130- layers := wms layers. 
131- 
132- # 'layers' is a XMLOrderedList( 
133- #   a OWSServiceWMSLayer(ADMINEXPRESS-COG-CARTO.LATEST) 
134- #   a OWSServiceWMSLayer(ADMINEXPRESS-COG.2017) 
135- #   [...] 
136- # ) 
137- 
138- "Download a raster map with two layers for a bounding box defined by EPSG:3857 coordinates" 
139- map := wms 
140-   map: { 'EL.GridCoverage'. 'FORETS.PUBLIQUES' } 
141-   bbox: (-546079 @ 6126282 corner: -398839 @ 6212047) 
142-   size: 800 @ 600 
143-   epsg: '3857' 
144-   format: 'image/png'. 
145- 
146- # 'map' is a Bitmap 
147- ``` 
148- 
149- <p  align =" center " >
150-   <img  src =" doc/wms.png "  alt =" WMS map "  width =" 400 " />
151- </p >
26+ Documentation is available on Github pages.
15227
15328
15429## :bust_in_silhouette :  Contributing 
@@ -161,4 +36,3 @@ If you are interested in contributing to the XXX project, start by reading the
16136
16237This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) 
16338file for details.
164- 
0 commit comments