En aquel Imperio, el Arte de la Cartografía logró tal Perfección que el Mapa de una sola Provincia ocupaba toda una Ciudad, y el Mapa del Imperio, toda una Provincia. Con el tiempo, estos Mapas Desmesurados no satisficieron y los Colegios de Cartógrafos levantaron un Mapa del Imperio, que tenía el Tamaño del Imperio y coincidía puntualmente con él. Menos Adictas al Estudio de la Cartografía, las Generaciones Siguientes entendieron que ese dilatado Mapa era Inútil y no sin Impiedad lo entregaron a las Inclemencias del Sol y los Inviernos. En los Desiertos del Oeste perduran despedazadas Ruinas del Mapa, habitadas por Animales y por Mendigos; en todo el País no hay otra reliquia de las Disciplinas Geográficas.
[Del rigor en la ciencia, Jorge Luis Borges]

2011-09-29

Sistemas de referência na norma WMS 1.3.0

O excerto que se segue foi traduzido da versão 1.3.0 da OpenGIS® Web Map Server Implementation Specification.
Só diz respeito à utilização de sistemas de referência e não dispensa a consulta do documento original... As omissões estão assinaladas com [...] e no fim do texto está um excerto do glossário utilizado. 

O objetivo era perceber exatamente que tipo de identificadores de CRS são válidos num serviço WMS. Isto porque na prática se encontram situações em que o namespace EPSG é usado de forma abusiva, i.e. para que o XML esteja formalmente correto só que depois o código do sistema de referência não consta da base de dados EPSG. Um exemplo para Portugal "ESPG:102164".

O segundo objetivo ainda não ficou claro e era perceber se a norma ISO19111 prevê uma representação dos CRS em WKT.

De caminho, ficaram clarificada algumas das minhas dúvidas sobre as ordens de eixos, a utilização da Pseudo Plate Carrée (e utilização de dimensões temporais e amostrais).

[...]
6.7 Sistemas de coordenadas
6.7.1 Introdução

Esta Norma usa duas classes de sistemas de coordenadas: o sistema de coordenadas do mapa [Map CS] aplicável à representação cartográfica gerada pelo WMS; e o sistema de referência por coordenadas da camada [Layer CRS] para uma caixa envolvente [Bounding Box] aplicada aos dados geográficos representados no mapa.
Durante uma operação de representação cartográfica, um WMS converte ou transforma informação geográfica do Layer CRS para o Map CS. Além disso, uma camada pode ter associado um sistema de coordenadas vertical, temporal ou outros.

6.7.2 Sistema de Coordenadas do Mapa [Map CS]
O sistema de coordenadas do mapa [Map CS] é o sistema de referência por coordenadas para o mapa produzido por um WMS. Um mapa WMS é uma malha retangular de pixeis visualizada no ecrã do computador (ou um ficheiro digital que poderia ser visualizado).
O Map CS tem um eixo horizontal denotado i, e um eixo vertical denotado j. Os eixos i e j devem ter valores inteiros não negativos. A origem (i,j) = (0,0) é o pixel no canto superior esquerdo do mapa; i aumenta para a direita e j aumenta para baixo.
O anexo B.2 define o Map CS utilizando a terminologia ISO 19111. O Map CS é identificado pela etiqueta "CRS:1".

A orientação usual do Map CS será tal que o eixo i é paralelo ao eixo leste-oeste do Layer CRS e aumenta para leste, e o eixo j é paralelo ao eixo norte-sul do Layer CRS e aumenta para sul. Esta orientação não será possível em alguns casos: por exemplo, numa projeção ortográfica sobre o Polo Sul. A convenção a ser seguida é que, sempre que possível, leste será para a direita e norte será para o topo do Map CS.

Os parâmetros WIDTH e HEIGHT utilizados no pedido GetMap (ver 7.3.3.8) e, por inclusão, no pedido GetFeatureInfo (ver 7.4.3.3) correspondem a i e j da seguinte forma:
  • WIDTH denota o tamanho da imagem do mapa em pixeis ao longo do eixo i (isto é, WIDTH-1 é o valor máximo de i).
  • HEIGHT denota o tamanho da imagem do mapa em pixeis ao longo do eixo j (isto é, HEIGHT-1 é o valor máximo de j).
Os parâmetros I e J utilizados no pedido GetFeatureInfo (ver 7.4.3.7) denotam valores inteiros ao longo dos eixos i e j, respetivamente, do Map CS.

6.7.3 Sistema de Referência por Coordenadas da Camada (Layer CRS)
6.7.3.1 Introdução

O sistema de referência por coordenadas da camada de dados (Layer CRS) é um sistema de referência por coordenadas horizontal para a informação geográfica que serve como fonte para a produção do mapa. Como discutido abaixo, são possíveis muitos Layer CRS.

O Layer CRS aparece nas seguintes entidades relevantes para o WMS:
  • o elemento <BoundingBox> nos metadados do serviço (ver 7.2.4.6.8);
  • o parâmetro CRS no pedido GetMap (ver 7.3.3.5);
  • o parâmetro CRS incluído no pedido de mapa do pedido GetFeatureInfo (ver 7.4.3.3).

Um WMS deve suportar pelo menos um CRS, e os mapas gerados por diferentes servidores só podem ser sobrepostos se todos os servidores selecionados têm pelo menos um CRS em comum.

Esta Norma não obriga a que seja suportado qualquer Layer CRS. Em vez disso, apenas define a forma como os CRS são identificados e discute vários Layer CRS opcionais, nesta cláusula e no anexo B. Os fornecedores de serviços de mapas podem utilizar os CRS mais úteis e apropriados para sua área geográfica ou comunidade de informação.

Para maximizar a interoperabilidade entre servidores, os fornecedores de serviços de mapas devem também suportar a utilização de coordenadas geográficas em sistemas de coordenadas geocêntricos como "CRS:84" (ver 6.7.3.2), "EPSG:4326" (ver 6.7.3.3) ou outros sistemas baseados em ITRF.

Cada Layer CRS tem um identificador que é uma cadeia de caracteres. São permitidos dois tipos de identificadores de Layer CRS - etiqueta e URL:
  • etiqueta: O identificador inclui um prefixo que identifica um namespace, dois pontos, um código numérico ou alfanumérico, e em alguns casos, uma vírgula seguida por parâmetros adicionais. Esta Norma define três namespaces: CRS, e EPSG e AUTO2, como discutido abaixo.
  • URL: O identificador é um URL totalmente qualificado que referencia um ficheiro acessível ao público, contendo uma definição do CRS conforme com a norma ISO 19111.

O Layer CRS tem dois eixos, denotados x e y. O eixo x é o primeiro eixo na definição do CRS, o eixo y é o segundo eixo. Dependendo do CRS particular, o eixo x pode ou não ter orientação oeste-leste, e o eixo y pode ou não ter orientação sul-norte. Quando é feita a projeção da informação geográfica do Layer CRS para o Map CS, a operação de representação cartográfica WMS deve ter em conta a origem, ordem e orientação dos eixos no Layer CRS.

As coordenadas devem ser listados na ordem definida pelo CRS, e deve ser mapeadas de forma adequada para os eixos i e j do Map CS, se necessário, trocando a ordem dos eixos durante a operação de projeção. Muitos sistemas de referência por coordenadas projetados têm uma ordem de eixos diferente de (Easting, Northing), i.e., (M, P) em que M é a distância à meridiana e P é a distância à perpendicular. Por exemplo, o sistema EPSG:2393 usado na Finlândia segue a ordem (P,M). Os CRS geográficos EPSG seguem a norma ISO 6709 e listam sempre a latitude antes da longitude.

A maioria dos sistemas de referência por coordenadas são orientados com um eixo positivo para leste positivo (easting ou M) e o outro eixo positivo para norte (northing ou P). Estes eixos podem ser convenientemente mapeados para os eixos i e j da caixa envolvente. No entanto, alguns CRS têm coordenadas crescentes noutras direções. Por exemplo, o sistema EPSG:2051 utilizado na África do Sul tem eixos crescentes para oeste e sul. Os testes de validação dos pedidos quando as áreas indicadas na caixa envolvente devem reconhecer e lidar com a orientação positiva dos eixos do CRS.
Num CRS geográfico, a latitude terá valores dentro do intervalo [-90, 90] e a longitude terá valores no intervalo [-180, 180] graus (ou equivalente, se a definição do CRS estiver numa unidade diferente). Ver o ponto 7.3.5 para o caso particular em que se pretende projetar um Layer CRS geográfico para o Map CS. Quando o código CRS especifica um sistema de referência geográfico 2D com eixos numa unidade diferente de graus (ou em graus não decimais), a representação deve ser convertida para graus decimais.

NOTA:
O uso de CRS geográficos em que a ordem dos eixos apresenta a longitude antes da latitude difere da convenção histórica. Os utilizadores no setor marítimo e aeronáutico podem esperar representações na forma latitude, longitude: uma representação diferente pode ter implicações de segurança, sobretudo em situações de emergência. Embora esta Norma não especifique interfaces com utilizadores humanos, os programadores de interfaces para utilizadores humanos são advertidos de que todas as referências a valores de latitude e longitude (e.g. em caixas de entrada de dados e na leitura da posição do cursor) devem mostrar os valores de latitude antes dos valores de longitude.

6.7.3.2 CRS namespace
O namespace identificado pelo prefixo "CRS" refere-se aos sistemas de referência por coordenadas definidos no Anexo B desta Norma. Essas definições do Anexo B estão na forma especificada pela norma ISO 19111. O anexo B define, no namespace "CRS", sistemas de referência geográficos para os data WGS 84, NAD27 e NAD83.
A etiqueta "CRS" inclui o prefixo "CRS", os dois pontos, e um código numérico ou alfanumérico.
EXEMPLO
"CRS:84" refere-se a valores de longitude e latitude em WGS84, expressos em graus decimais, com longitude no intervalo de -180 a +180 graus e latitude no intervalo de -90 graus a 90 graus.

6.7.3.3 EPSG namespace
O prefixo de namespace "EPSG" refere-se ao registry do European Petroleum Survey Group (EPSG), que define identificadores numéricos para muitos sistemas de referência por coordenadas. Para cada identificador de CRS existem definições associadas relativas ao datum geodésico, projeção cartográfica e dados do sistema de referência.
A etiqueta "EPSG" inclui o prefixo "EPSG", os dois pontos, e um código numérico.
EXEMPLO
"EPSG:4326" refere-se a coordenadas geodésicas WGS84: primeiro a latitude, depois a longitude. Ou seja, neste CRS o eixo x corresponde à latitude, e o eixo y corresponde à longitude.
[...]
6.7.3.5 Informação geográfica com um CRS indefinido
Um servidor pode fornecer informação geográfica bidimensional cujo sistema de referência é indefinido. Por exemplo, um mapa histórico desenhado à mão pode representar uma área da Terra, mas não utilizar um CRS moderno, ou uma fotografia aérea pode não estar exatamente precisamente geo-referenciadas. Esta informação gráfica deve ser tratada como uma imagem, e a etiqueta "CRS:1" (utilizada para o Map CS) deve ser usada quando se declarar o Layer CRS deste tipo de objetos. Os clientes não devem tentar sobrepor uma camada para a qual CRS=CRS:1 com outra camada.

6.7.4 Caixas envolventes
Os valores da caixa envolvente (Bounding Box) especificam a porção da Terra a ser mapeada, designadamente através de dois pares de coordenadas no Layer CRS especificado. O primeiro par especifica os valores mínimos das coordenadas, o segundo especifica os valores máximos das coordenadas, sempre no Layer CRS identificado.
Para a maioria dos CRS com eixos crescentes para leste e para norte, estes valores serão o canto inferior esquerdo e o canto superior direito da área de interesse; contudo, em alguns CRS, os valores mínimos e máximos podem corresponder a outros pontos. Por exemplo, quando se utilizam coordenadas geográficas para descrever uma área situada sobre o Polo, ou quando o Layer CRS tem eixos com orientação crescente diferente de leste e norte. A ordem pela qual são listadas as ordenadas de cada par é a definidos pelo Layer CRS; x corresponde ao primeiro eixo do Layer CRS e y ao segundo eixo. Esta ordem não pode coincidir com a dos eixos i,j no Map CS. Os valores das coordenadas da caixa envolvente são expressos nas unidades definidas para o CRS Layer.

As seguintes entidades relevantes para o WMS utilizam valores de caixa envolvente:
  • o elemento <BoundingBox> nos metadados do serviço (ver 7.2.4.6.8);
  • o parâmetro BBOX no pedido GetMap (ver 7.3.3.6);
  • o parâmetro BBOX incluído no pedido de mapa do pedido GetFeatureInfo (ver 7.4.3.3).
Uma caixa envolvente não deve ter área zero.

EXEMPLO 1
Um elemento de metadados <BoundingBox> para uma camada de dados que represente a toda a Terra no Layer CRS CRS:84 é escrito como
<BoundingBox CRS="CRS:84" minx="-180" miny="-90" maxx="180" maxy="90">.
Neste CRS, um parâmetro BBOX solicitando um mapa de toda a Terra é escrito como
BBOX =- 180, -90,180,90.

EXEMPLO 2
Uma <BoundingBox> representando a toda a Terra no Layer CRS EPSG:4326 é escrita como
<BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180">.
Neste CRS, um parâmetro BBOX solicitando um mapa de toda a Terra é escrito como:
BBOX =- 90, -180,90,180.

6.7.5 Sistema de referência por coordenadas vertical (Vertical CRS)


Alguns dados geográficos podem estar disponíveis a altitudes múltiplas (por exemplo, concentrações de ozono a diferentes altitudes na atmosfera). Um WMS pode anunciar as altitudes disponíveis nos seus metadados de serviço, e a operação GetMap inclui um parâmetro opcional para solicitar uma dada altitude. Um valor de altitude ou profundidade é um número cujas unidades (bem como a direção de incremento) são declaradas através de um CRS unidimensional. Dependendo do contexto, valores de elevação pode aparecer como um único valor, uma lista de valores ou um intervalo de valores, conforme especificado no anexo C.

Um servidor pode declarar, no máximo, um CRS vertical para cada camada de dados. Para os fins desta Norma, os CRS horizontal e vertical são tratados como elementos de metadados independentes e como parâmetros do pedido independentes.

O pedido de um mapa a uma altitude específica inclui um valor de altitude, mas não inclui o identificador CRS vertical (o identificador do CRS horizontal está incluído junto com a caixa envolvente horizontal nos parâmetros do pedido).
Quando fornecer informação altitudinal, um servidor deve declarar um valor de altitude por omissão nos metadados do serviço, e um servidor deve responder com o valor por omissão, caso este tenha sido declarado e o pedido enviado pelo cliente não inclua um valor de altitude.

Dois tipos de identificadores de CRS Vertical são permitidos - identificadores "etiqueta" e "URL":
  • Etiqueta: O identificador inclui um prefixo que identifica um namespace, dois pontos, e um código numérico ou alfanumérico. O Anexo B.6 define um CRS vertical opcional chamado "CRS:88" com base no Datum Vertical norte-americano de 1988. Se o prefixo de namespace é "EPSG", então o CRS vertical é uma dos definidos na base de dados do European Petroleum Survey Group.
  • URL: O identificador é um URL totalmente qualificado que referencia um ficheiro acessível ao público, contendo uma definição do CRS conforme com a norma ISO 19111.

Se a altitude for a componente vertical de um CRS tridimensional, o identificador do CRS Vertical será o do CRS tridimensional.


6.7.6 Sistema de coordenadas temporal (Temporal CS)
Alguns dados geográficos podem estar disponíveis para vários períodos de tempo (por exemplo, um mapa meteorológico horário). Um WMS pode anunciar os períodos de tempo disponíveis nos seus metadados de serviço, e a operação GetMap inclui um parâmetro opcional para solicitar um período de tempo particular. O formato da cadeia de caracteres a utilizar para especificar um período de tempo é especificado no anexo D.
Dependendo do contexto, os valores de tempo pode aparecer como um único valor, uma lista de valores ou um intervalo, conforme especificado no anexo C. Quando fornecer informação temporal, um servidor deve declarar um valor por omissão nos metadados do serviço, e um servidor deve responder com o valor por omissão, caso este tenha sido declarado e o pedido do cliente não inclua um valor.


6.7.7 Outros sistemas de coordenadas
Alguns dados geográficos podem estar disponíveis noutras dimensões (por exemplo, imagens de satélite em diferentes bandas de comprimento de onda). Outras dimensões para além das quatro dimensões do espaço-tempo são chamadas de "dimensões amostrais". Um WMS pode anunciar as dimensões amostrais disponíveis nos seus metadados de serviço, e a operação GetMap inclui um mecanismo para solicitar valores dimensionais. Cada dimensão amostral tem um nome e um ou mais valores válidos. A declaração e o uso de dimensões amostrais são especificados no Anexo C.3.3.

7 Operações Web Map Service[...]
7.2 GetCapabilities (obrigatório)[...]
7.2.4 Resposta ao pedido GetCapabilities[...]
7.2.4.6 Propriedades de Layer[...]
7.2.4.6.7 CRS
Cada camada está disponível em um ou mais Layer CRS. O ponto 6.7.3 discute o Layer CRS. A fim de indicar que Layer CRS estão disponíveis, cada elemento <layer> deve ter pelo menos um elemento <CRS> declarado explicitamente ou herdado de uma <layer> hierarquicamente superior. O elemento <layer> situado na raiz deve incluir uma sequência de zero ou mais elementos <CRS> listando todos os CRS que são comuns aos <layer> hierarquicamente inferiores. Uma camada-filha pode opcionalmente adicionar um ou mais CRS à lista herdada de uma camada-mãe. Qualquer duplicação deve ser ignorada pelos clientes.
Quando uma camada está disponível em vários CRS, a lista de valores de CRS disponíveis deve ser representado como uma sequência de elementos <CRS>, cada um dos quais contém apenas um único CRS.

EXEMPLO
<CRS>CRS:84</CRS><CRS>EPSG:26718</CRS>.

7.2.4.6.8 BoundingBox
Os metadados do serviço WMS devem declarar uma ou mais caixas envolventes (conforme definido em 6.7.4) para cada camada.
Um elemento de metadados referente a uma caixa envolvente pode ser declarado explicitamente ou pode ser herdado de uma camada superior. Em XML, o elemento de metadados <BoundingBox> inclui os seguintes atributos:
  • CRS indica o Layer CRS a que se aplica uma dada caixa envolvente.
  • minx, miny, maxx, maxy indica os limites da caixa envolvente, nas unidades e a segundo a ordem de eixos do CRS especificado.
  • resx e resy (opcional) indicam a resolução espacial dos dados que compõem a camada, nas unidades e segundo a ordem de eixos do CRS especificado.
O elemento de metadados <BoundingBox> tem a seguinte relação com o parâmetro BBOX definido no ponto 7.3.3.6. O elemento de metadados <BoundingBox> especifica o intervalo válido de coordenadas para a camada como um todo. O parâmetro BBOX, por outro lado, especifica qual a área deve ser representada no mapa. A área BBOX pode ou não sobrepor-se, conter, ou ser contida dentro da área BoundingBox.

Uma camada pode ter vários elementos <BoundingBox>, mas cada um deles deve indicar um CRS diferente. Uma camada herda todos os valores <BoundingBox> definido pelas camadas hierarquicamente superiores. A <BoundingBox> herdada de uma camada superior é substituída por qualquer declaração para o mesmo CRS na camada hierarquicamente inferior. Uma <BoundingBox> na camada inferior para um novo CRS que não tenha sido declarada numa camada superior é adicionada à lista de caixas envolventes da camada inferior. Uma dada camada não deve conter mais de uma <BoundingBox> para cada CRS suportado.

NOTA:
A Norma não inclui qualquer provisão para caixas envolventes espacialmente disjuntas. Considere-se, por exemplo, um conjunto de dados que abranja duas áreas geográficas separadas por alguma distância. O servidor não pode fornecer duas caixas envolventes diferentes na mesma camada usando o mesmo CRS para descrever separadamente as áreas. Para lidar com este tipo de situação, o servidor pode: definir uma única caixa envolvente que inclua ambas as áreas; ou definir duas camadas separadas em que cada uma tem um nome distinto e também uma caixa envolvente distinta.
Uma camada não deve fornecer uma <BoundingBox> para um CRS que não suporte. Por outro lado, uma camada pode suportar um CRS para o qual não forneça uma <BoundingBox>: um servidor que tenha a capacidade de transformar dados geográficos para diferentes CRS pode optar por não fornecer uma <BoundingBox> explícita para cada um dos CRS disponíveis para cada camada. O servidor deve, contudo, pelo menos fornecer uma <BoundingBox>, no CRS nativo da camada de dados (isto é, no CRS em que a camada é armazenada na base de dados do servidor).
O elemento <EX_GeographicBoundingBox> (ver 7.2.4.6.6) é conceptualmente semelhante a uma <BoundingBox> em que o atributo CRS="CRS:84" está implícito. No entanto, o elemento <EX_GeographicBoundingBox> não deve ser utilizado como um substituto para <BoundingBox CRS="CRS:84">. Se o servidor pretende fornecer informação relativa à caixa envolvente no CRS:84, então deve ser incluído nos metadados do serviço um elemento <BoundingBox> separado designando explicitamente o CRS:84.
Se o Layer CRS é "CRS:1" (ou seja, o Map CS, ver B.2), então as unidades da caixa envolvente são dadas em pixeis, a origem é no canto superior esquerdo, o primeiro eixo (x) cresce para a direita, e o segundo eixo (y) cresce para baixo.
[...]
7.2.4.8 Herança de propriedades da camada
A Tabela 7 resume o modo como as propriedades de um elemento <layer> são herdadas pelos elementos <layer> hierarquicamente inferiores. Uma propriedade: pode não ser herdada; pode ser herdada tal como definida no elemento-pai; pode ser substituída, se o elemento-filho a redefine; pode ser herdada e adicionada se o elemento-filho também a define.
Na Tabela 7, a coluna "Número" indica o número de vezes que cada elemento pode aparecer numa camada, seja explicitamente seja através de herança. Assim, é mais restritiva do que as restrições impostas pelo esquema em E.1. O significado dos valores nesta coluna é o seguinte:
  • 1: aparece exatamente uma vez em cada camada.
  • 0 / 1: aparece uma vez ou não aparece.
  • 0+ : aparece zero ou mais vezes.
  • 1+ : aparece uma ou mais vezes.
A coluna "Herança" indica se e como o elemento é herdado por camadas-filhas. O significado dos valores nesta coluna é o seguinte:
  • Não: Não herdada. Se o elemento é definido como sendo obrigatória por esta Norma, então cada elemento <layer> deve incluir esse elemento.
  • Substituir: O valor pode ser herdado do elemento <layer> hierarquicamente superior e omitido pelo elemento <layer> hierarquicamente inferior, mas se for especificado pelo elemento-filho, então o valor herdado do elemento-pai é ignorado.
  • Adicionar: O valor pode ser herdado do elemento <layer> hierarquicamente superior e omitido pelo elemento <layer> hierarquicamente inferior. "Adicionar" só é relevante para os elementos que podem aparecer mais de uma vez. O elemento-filho herda quaisquer valores fornecidos pelo pai e acrescenta quaisquer valores próprios para a lista. Qualquer definição duplicada adicionada pelo elemento-filho pode ser ignorada.
Tabela 7 - Herança de propriedades da camada
Elemento,Número,Herança,(Comentário)
CRS,1+,adicionar,(Pode ser 0 somente se o valor é herdado a partir de um elemento <layer> superior, ver 7.2.4.6.6 através 7.2.4.6.8.)
EX_GeographicBoundingBox,1,substituir,(Pode ser 0 somente se o valor é herdado de um elemento <layer> superior;. Ver 7.2.4.6.6 a 7.2.4.6.8)
BoundingBox,1+,substituir,(Pode ser 0 somente se o valor é herdado de um elemento <layer> superior;. Ver 7.2.4.6.6 a 7.2.4.6.8)
[...]
7.3 GetMap (obrigatório)[...]
7.3.3 Parâmetros do pedido[...]
7.3.3.5 CRS
O parâmetro CRS do pedido GetMap define qual é o Layer CRS (ver 6.7.3) que se aplica aos valores do parâmetro BBOX. O valor do parâmetro CRS num pedido a um dado servidor deve ser um dos valores definidos, nos metadados de serviço, num elemento <CRS> definido ou herdado pela camada solicitada. O mesmo CRS é aplicado a todas as camadas de um único pedido.
Um servidor WMS não é obrigado a suportar todos os CRS possíveis, mas deve anunciar nos seus metadados de serviço quais os CRS que oferece e deve aceitar pedidos de todos os CRS anunciados. Se um pedido contém um CRS não oferecido por um dado servidor, o servidor deve lançar uma exceção de serviço (code="InvalidCRS").

Os clientes não são obrigados a suportar todos os CRS possíveis. Se um cliente e servidor não suportam um qualquer CRS comum, o cliente poderá, a seu critério: cessar a comunicação com o servidor; ou procurar um fornecedor de serviços intermédio que execute transformações de coordenadas; ou permitir ao utilizador escolher outra via alternativa.

Esta Norma não define um mecanismo que permita aos clientes a solicitar explicitamente a reprojeção ou transformação de coordenadas. Ou seja, existe apenas um único parâmetro CRS no pedido, e por isso não é possível especificar um CRS origem para selecionar a informação geográfica e um CRS destino para a representação cartográfica do mapa. Contudo, pode ocorrer uma reprojeção implícita, se o servidor oferece vários CRS mas internamente armazena a informação geográfica num CRS particular.
Se o servidor WMS declarou CRS=CRS:1 para uma dada camada, como discutido no ponto 6.7.3.5, então a camada não tem um CRS bem definido e não deve ser mostrado em conjunto com outras camadas. Neste caso, o cliente deve especificar CRS=CRS:1 no pedido GetMap e, caso contrário, o servidor pode emitir uma exceção de serviço. Quando este CRS=CRS:1 é usado num pedido, o parâmetro BBOX é expresso em pixeis.

7.3.3.6 BBOX

O parâmetro obrigatório BBOX permite a um cliente solicitar uma determinada caixa envolvente. As caixas envolventes são definidas no ponto 6.7.4. O valor do parâmetro BBOX num pedido GetMap é uma lista de números reais separados por vírgulas (ver 6.5) na forma de "minx, miny, maxx, maxy". Estes valores especificam o X mínimo, Y mínimo, X máximo e Y máximo da região pretendida, no Layer CRS do pedido. As unidades, ordenação e direção do incremento dos eixos X e Y são como definidos pelo Layer CRS (ver 6.7.3) Os quatro valores da caixa envolvente indicam os limites exteriores da região. A relação da caixa envolvente com a matriz de pixeis do mapa é que a caixa envolvente contorna "por fora" os pixeis do mapa, em vez de atravessar os centros dos pixeis limítrofes do mapa. Neste contexto, cada pixel individual representa uma área no terreno.

Se um pedido contém uma BBOX inválida (por exemplo, uma caixa cujo X mínimo é maior ou igual à X máximo, ou cujo Y mínimo é maior ou igual ao Y máximo) o servidor deve lançar uma excepção de serviço.
Se um pedido contém uma BBOX cuja área não se sobrepõe com o elemento <BoundingBox> dos metadados do serviço para a camada solicitada, o servidor deve retornar conteúdo vazio (ou seja, um mapa em branco ou um ficheiro gráfico sem elementos gráficos) para esse mapa. Quaisquer características total ou parcialmente contidas na caixa envolvente serão devolvidas no formato adequado.
Se os valores da caixa envolvente não essão definidos para o CRS em causa (por exemplo latitudes superiores a 90 graus no CRS:84), o servidor deve retornar conteúdo vazio para as áreas fora do intervalo válido para o CRS.
Se o servidor WMS declarou que uma camada não é "subsettable" (i.e. que a uma dada camada não pode ser solicitada informação com uma caixa envolvente diferente da declarada para um dado CRS), como descrito em 7.2.4.7.5, então o cliente deve especificar exatamente os valores da caixa envolvente declarada no pedido GetMap e, caso contrário, o servidor pode emitir uma exceção de serviço.
[...]
7.3.5 Projeção de CRS geográficos para o Map CS

Quando o parâmetro CRS especifica um sistema de referência por coordenadas geográficas (por exemplo CRS:84 ou EPSG:4326), os dados espaciais são projetados internamente usando o método de operação sobre coordenadas Pseudo Plate Carrée e subsequentemente transformados para o sistema de referência em coordenadas-imagem com o eixo i paralelo e proporcional à longitude e o eixo j paralelo e proporcional à latitude, de modo a permitir a visualização em ecrã.
Os eixos da imagem são de escala variável, porque os incrementos de latitude e longitude não são ambos consistentes em termos lineares. A informação geográfica é projetada durante a operação de representação cartográfica utilizando uma projeção equidistante cilíndrica modificada:
  • Os valores mínimos e máximos de longitude e latitude solicitados (min_lon, min_lat, max_lon, max_lat) são determinados a partir do parâmetro BBOX, tendo em conta a ordem do eixos x e y especificado pelo parâmetro CRS.
  • A distância angular (max_lon - min_lon) em graus é dimensionada para o número de pixeis especificado pelo parâmetro WIDTH.
  • A distância angular (max_lat - min_lat) em graus é dimensionada para o número de pixeis especificado pelo parâmetro HEIGHT.
  • O mapa é produzido com longitude paralela ao eixo i e latitude paralela ao eixo j.
[...]
Anexo B (normativo)
Definições de sistemas de referência por coordenadas (CRS)
B.1 Introdução
Este anexo define vários sistemas de coordenadas, incluindo o Map CS (ver 6.7.2), e vários Layer CRS no namespace "CRS" (ver 6.7.3.2) e namespace AUTO2 (ver 6.7.3.4), e um CRS Vertical (ver 6.7.5).
Os Layer CRS no namespace "EPSG" são definidos pelo European Petroleum Survey Group, como descrito em 6.7.3.3.
Todos os Layer CRS e CRS Vertical definidos neste anexo (ou por outra autoridade, como o EPSG) são opcionais; a escolha de quais os CRS a suportar fica ao critério do fornecedor de WMS. No entanto, é obrigatório o suporte ao Map CS definido no ponto B.2, porque esse sistema de coordenadas se aplica ao mapa gerados pelo WMS.
As definições deste Anexo utilizam o formato tabular conforme à norma ISO 19111 (Tabelas B.1 a B.5) ou as representações em WKT (Well Known Text) conformes à norma ISO 19125.
[...]


Extracto do glossário usado na tradução
    en,pt,description
    "atribute","atributo",
    "bounding box","caixa envolvente"
    "character string","cadeia de caracteres"
    "character","carácter"
    "class","classes"
    "contains","contem"
    "coordinate reference system","sistema de referência por coordenadas",[CRS]
    "coordinate system","sistema de coordenadas",[CS]
    "depth","profundidade"
    "disjoint","disjunto"
    "easting","distância à meridiana",[M]
    "elevation","altitude"
    "entity","entidade"
    "feature","característica"
    "file","ficheiro"
    "grid","malha"
    "identifier","identificador"
    "label","etiqueta"
    "Layer CRS","sistema de referência por coordenadas da camada",[Layer CRS]
    "layer","camada"
    "Map CS","sistema de coordenadas do mapa",[Map CS]
    "map service","serviço de mapas"
    "map","mapa"
    "norting","distância à perpendicular",[P]
    "overlay","sobreposição"
    "portrayal","representação cartográfica"
    "provider","fornecedor"
    "representation","representação"
    "request","pedido"
    "server","servidor"
    "service","serviço"