Sări la conținutul principal

WMS — Web Map Service

WMS (Web Map Service) îți permite să redezi plăci de hartă stilizate din straturile GeoServer. Acest ghid acoperă toate cinci operațiile WMS și parametrii lor.

Toate cererile merg la: https://graph.quarticle.ro/graph/layers/wms/

Autentificare: Adaugă antetul Authorization: YOUR_API_KEY la toate cererile.


GetCapabilities

Descoperă straturile disponibile, stilurile, proiecțiile și formaturile de ieșire publicate în GeoServer.

Scop: Descoperire metadate — înțelege ce straturi sunt disponibile și ce operații le suportă.

Parametri obligatori

ParametruValoareExemplu
serviceWMSservice=WMS
version1.3.0version=1.3.0
requestGetCapabilitiesrequest=GetCapabilities

Răspuns

Returnează un document XML care listează toate straturile disponibile cu:

  • Casete de delimitare (extindere spațială)
  • Proiecții disponibile (SRS)
  • Stiluri
  • Tipuri de date
curl -X GET "https://graph.quarticle.ro/graph/layers/wms/GetCapabilities" \
-H "Authorization: YOUR_API_KEY" \
--data-urlencode "service=WMS" \
--data-urlencode "version=1.3.0" \
--data-urlencode "request=GetCapabilities"

DescribeLayer

Obține metadate despre sursa WFS sau WCS a unui strat specific.

Scop: Găsește parametrul typeNames WFS corespunzător unui strat WMS.

Parametri obligatori

ParametruDescriere
serviceWMS
version1.1.1
requestDescribeLayer
layersNume de straturi separate prin virgulă. Exemplu: GRAPHRASTER:light_pollution

Parametri opționali

ParametruDescriere
exceptionsFormat excepție. Implicit: application/vnd.ogc.se_xml

Exemplu

curl -X GET "https://graph.quarticle.ro/graph/layers/wms/DescribeLayer" \
-H "Authorization: YOUR_API_KEY" \
--data-urlencode "service=WMS" \
--data-urlencode "version=1.1.1" \
--data-urlencode "request=DescribeLayer" \
--data-urlencode "layers=GRAPHRASTER:light_pollution"

GetMap

Redă o plăcuță de hartă (imagine PNG) pentru o anumită zonă, straturi și stil.

Scop: Generează imagini de hartă stilizate pentru afișare pe hărți web sau în aplicații.

Parametri obligatori

ParametruDescriereExemplu
serviceWMSWMS
version1.3.01.3.0
requestGetMapGetMap
layersNume de straturi separate prin virgulăGRAPHRASTER:light_pollution
stylesNume de stiluri separate prin virgulă (sau gol pentru implicite)`` (gol) sau light_style
srs / crsSistem de referință spațial (cod EPSG)EPSG:3857 (Web Mercator)
bboxCaseta de delimitare: minx,miny,maxx,maxy în unități SRS975947.9771,6657970.9118,1533632.5355,7037098.5720
widthLățimea ieșirii în pixeli256
heightÎnălțimea ieșirii în pixeli256
formatFormat de ieșireimage/png

Parametri opționali

ParametruDescriereExemplu
transparentDacă fundal este transparenttrue
bgcolorCuloare de fundal în format RRGGBB hexFFFFFF
exceptionsFormat excepțieapplication/json
timeValoare de timp pentru straturi temporale2023-01-01T00:00:00Z
sldURL la document SLD externhttps://example.com/style.sld
sld_bodySLD XML codificat în URL(vezi exemple)

Exemplu: Plăcuță de bază 256×256

curl -X GET "https://graph.quarticle.ro/graph/layers/wms/GetMap" \
-H "Authorization: YOUR_API_KEY" \
--data-urlencode "service=WMS" \
--data-urlencode "version=1.3.0" \
--data-urlencode "request=GetMap" \
--data-urlencode "layers=GRAPHRASTER:light_pollution" \
--data-urlencode "styles=" \
--data-urlencode "srs=EPSG:3857" \
--data-urlencode "bbox=975947.9771,6657970.9118,1533632.5355,7037098.5720" \
--data-urlencode "width=256" \
--data-urlencode "height=256" \
--data-urlencode "format=image/png" \
--data-urlencode "transparent=true" \
-o tile.png

Sfaturi

  • EPSG:3857: Utilizează pentru plăcile hartă web (proiecție Web Mercator)
  • EPSG:4326: Utilizează pentru date reproyectate (lat/lon, rar pentru plăci)
  • SRS vs CRS: WMS 1.1.x utilizează srs, WMS 1.3.0 utilizează crs (GeoServer acceptă ambele)
  • format=image/png: Produce plăci PNG de 8 biți mai mici
  • transparent=true: Permite fundalului să se manifeste (util pentru suprapuneri)
  • Straturi multiple: Separă cu virgule: layers=layer1,layer2,layer3

GetFeatureInfo

Interogă atributele caracteristicilor la o locație de pixel pe o hartă redată.

Scop: "Clic pentru interogare" — obține valori de atribute din locația pe hartă.

Parametri obligatori

Toți parametrii GetMap, plus:

ParametruDescriereExemplu
query_layersStraturi de interogat (subset al layers)GRAPHRASTER:light_pollution
xCoordonata X a punctului de interogare (în pixeli)5
yCoordonata Y a punctului de interogare (în pixeli)5

Parametri opționali

ParametruDescriere
info_formatFormat de răspuns: text/html, application/json, text/plain
feature_countMax caracteristici de returnat. Implicit: 1

Exemplu

curl -X GET "https://graph.quarticle.ro/graph/layers/wms/GetFeatureInfo" \
-H "Authorization: YOUR_API_KEY" \
--data-urlencode "service=WMS" \
--data-urlencode "version=1.3.0" \
--data-urlencode "request=GetFeatureInfo" \
--data-urlencode "layers=GRAPHRASTER:light_pollution" \
--data-urlencode "query_layers=GRAPHRASTER:light_pollution" \
--data-urlencode "styles=" \
--data-urlencode "srs=EPSG:3857" \
--data-urlencode "bbox=975947.9771,6657970.9118,1533632.5355,7037098.5720" \
--data-urlencode "width=256" \
--data-urlencode "height=256" \
--data-urlencode "x=128" \
--data-urlencode "y=128" \
--data-urlencode "info_format=application/json"

GetLegendGraphic

Recuperează o imagine de legendă redată pentru un strat și stil.

Scop: Afișează legenda straturilor în aplicația ta.

Parametri obligatori

ParametruDescriereExemplu
serviceWMSWMS
version1.0.01.0.0
requestGetLegendGraphicGetLegendGraphic
layerNume stratGRAPHRASTER:light_pollution
stylesNume stillight_style sau gol
formatFormat imagineimage/png

Parametri opționali

ParametruDescriere
widthLățime în pixeli (implicit: 20)
heightÎnălțime în pixeli (implicit: 20)
ruleRegulă specifică din stil (dacă se aplică)
scaleNumitor de scară standardizat
sldURL la document SLD extern
sld_bodySLD XML codificat în URL
languageLimbă pentru etichete

Exemplu

curl -X GET "https://graph.quarticle.ro/graph/layers/wms/GetLegendGraphic" \
-H "Authorization: YOUR_API_KEY" \
--data-urlencode "service=WMS" \
--data-urlencode "version=1.0.0" \
--data-urlencode "request=GetLegendGraphic" \
--data-urlencode "layer=GRAPHRASTER:light_pollution" \
--data-urlencode "format=image/png" \
--data-urlencode "width=40" \
--data-urlencode "height=40" \
-o legend.png

Gestionarea erorilor

Dacă o cerere GetMap sau GetCapabilities eșuează, eroarea este returnată în formatul excepție solicitat:

<?xml version="1.0" encoding="UTF-8"?>
<ServiceExceptionReport version="1.3.0">
<ServiceException>
Layer 'invalid_layer' not found
</ServiceException>
</ServiceExceptionReport>

Sau ca JSON dacă exceptions=application/json:

{
"code": "InvalidLayer",
"message": "Layer 'invalid_layer' not found"
}

Erori comune:

  • InvalidLayer: Nume strat nu există. Verifică GetCapabilities.
  • InvalidSRS: Cod SRS/CRS nu este suportat. Tipic: EPSG:3857, EPSG:4326.
  • InvalidBBox: Format cutie de delimitare incorect sau în afara limitelor.
  • Unauthorized: Cheia API lipsă sau nevalidă.

Pași următori