Algumas Noções Sobre os Mapas Vectoriais Carregados nos Receptores GPS da Garmin

por

em

Criar um mapa vectorial para ser carregado num receptor GPS pode ser comparado com o processo clássico de programação: escrever o mapa utilizando uma sintaxe própria e, finalmente, compilá-lo. Também aqui existem ferramentas que geram ou ajudam a gerar através de interfaces gráficos o código-fonte. Este código utiliza um formato que é conhecido como PFM (Polski Format) ou “formato polaco”.

O formato polaco é um formato baseado em texto, utilizado para armazenar informação sobre um mapa em computador. Como tal, não pode ser transferido directamente para os receptores GPS. Os ficheiros escritos neste formato têm a extensão .mp. Internamente, estes ficheiros encontram-se estruturados em secções, cuja lista apresentamos a seguir: 

Tipo de Secção Secção
Cabeçalho [IMG ID]
Declarações  [COUNTRIES]
[REGIONS]
[CITIES]
[CHART INFO]
Declarações avançadas  [DICTIONARY]
[BACKGROUND]
[HIGHWAYS]
[ZIPCODES]
[DEFINITIONS]
Objectos [POI]
[POLYLINE]
[POLYGON]
[PLT]
[WPT]
[DBX]
[SHP]
[FILE]
[RGN10]
[RGN20]
[RGN40]
[RGN80]

 

Section Type Identifier(s)

Um mapa vectorial é constituído por quatro grandes tipos de objectos:

  • POIs (points of interest) ou pontos de interesse, como restaurantes, hotéis, parques de campismo ou bombas de combustível;
  • Pontos (objectos não indexados, como os edifícios);
  • Linhas (polylines) ou objectos lineares como as estradas, trilhos; e
  • Polígonos, ou objectos de área como os lagos, as florestas.

 

Em objectos não dimensionais, como são os pontos de interesse (POIs) e os pontos, apenas temos que definir os seguintes atributos: nome, tipo e par de coordenadas (latitude, longitude). Já os objectos dimensionais (linhas e polígonos) necessitam, para além dos atributos nome e tipo, dos pares de coordenadas de todos os vértices que os constituem.

Outro dado importante no mapa é aquele relacionado com a definição dos níveis de ampliação e, associado a estes, da exibição de mais ou menos detalhe. Assim, a selecção de objectos apropriada à visualização dependerá do nível de ampliação (zoom), pelo que a exibição de edifícios individualizados, de estradas secundárias ou de trilhos apenas se justifica em grandes níveis de ampliação. À medida que diminuímos o tamanho (zoom out), a exibição de tais objectos torna-se inapropriada, podendo apenas mostrar as estradas principais ou os grandes cursos de água, sob pena de tornar o mapa ilegível. Através dos níveis é possível então configurar no mapa a visibilidade e o aspecto dos objectos.

Quando procedemos a operações de aumento ou diminuição do tamanho do mapa, aparece no Mapsource como no receptor de GPS informação sobre a escala corrente (por exemplo 1 km). Tal escala, que corresponde a um nível de ampliação, não existe quando estamos a construir o mapa utilizando a sintaxe PFM. Os níveis de ampliação são antes definidos e identificados através de valores numéricos, designados de Hardware Zoom Level, cujo intervalo oscila entre 1 (o menos detalhado) e 24 (o mais detalhado). Nesta ordem crescente, a transição de um número para aquele que imediatamente se lhe segue corresponde ao duplicar do nível de ampliação. A correspondência entre os designados de Hardware Zoom Level e as escalas pode ser visto na tabela que se segue:

Hardware Zoom Level Escala métrica
12 500km a 800km
13 200km a 300km
14 80km a 120km
15 50km
16 20km a 30km
17 12km
18 5km
19 3km
20 2km
21 800m a 1,2km
22 500m
23 200m
24 Até 120m

Os níveis de ampliação entre 1 e 11 não são listados, na medida em que o nível 12 corresponde àquele que menos detalhe (zoomed out) pode ser representado num receptor GPS da Garmin.

Num mapa podem ser definidos vários níveis de ampliação, sendo o máximo de 10. Através da sintaxe PFM, os níveis de ampliação são especificados na secção [IMG ID], indicando o Hardware Zoom Level. Esta relação entre os níveis de ampliação especificados no mapa e os níveis de ampliação designados de Hardware Zoom Level pode ser visto imagem que se segue:

conceitos1

Segundo a sintaxe PFM, este mapa de Marrocos seria descrito da seguinte forma: 

[IMG ID]
Levels=2
Level0=13
Level1=12

Assim, temos que o nível de ampliação 0 do mapa corresponde ao Hardware Zoom Level de 13 e o nível 1 ao 12. Ainda neste exemplo, o nível de ampliação mais elevado do mapa (Level1 ou 1) corresponde ao nível de ampliação em que o mapa substitui a cartografia base do receptor GPS.

Preparar o mapa, fornecendo-lhe então os objectos e respectivos atributos que o constituem é um processo demorado e laborioso que pode ser atingido de várias formas (a maior parte das vezes combinadas): escrevendo o código num editor de texto, gerando-o visualmente através de ferramentas como o GPSMapEdit, importando objectos do tipo pontos de passagem (waypoints) e trajectos (tracks) a partir de ferramentas como o OziExplorer ou o MapSource.

Terminado o mapa, temos que compilá-lo através de aplicações como o cGPSmapper. O resultado final é disponibilizado através de um ficheiro de extensão .img. Esta trata-se da extensão normalizada para representar mapas compilados e prontos a carregar no receptor GPS ou no MapSource através de ferramentas como o Sendmap ou o MapSetToolkit.

O que é um ficheiro TYP?

Um ficheiro TYP contém definições ou parametrizações específicas quanto ao modo de representar os objectos no mapa, substituindo assim o modo de visualização por omissão do receptor GPS ou do Mapsource. Este tipo de ficheiros começa normalmente por ser criado como um ficheiro de texto, também ele estruturado internamente em secções, onde são definidas as formas de representação dos vários tipos de objectos do mapa:

Secção Descrição
[_ID] Define o FID (Family ID) que associa o TYP ao mapa, bem como o ProductCode que deve conter o valor 1 e o CodePage (conjunto de caracteres em utilização e que normalmente assume o valor 1252 – Europa Ocidental). É exemplo: [_id]
ProductCode=1
FID=888
CodePage=1252
[End]
[_drawOrder] Esta secção contém indicações para a representação de todos os objectos do tipo polígono contidos no mapa e não apenas aqueles que queremos parametrizar. Trata-se de uma secção obrigatória e que deverá listar todos os polígonos, mesmo que mais tarde não alteremos a sua apresentação gráfica, sob pena dos mesmos não serem representados no mapa.
[_point] Secção que permite redefinir o aspecto gráfico (no máximo de 24 x 24 pixéis e 254 cores) associado aos objectos do tipo POI, bem como o nome. Para tal é utilizado o formato XPM, o qual pode ser obtido através de ferramentas gráficas como …
[_line] Secção que permite redefinir o aspecto gráfico associado aos objectos do tipo linha (polyline), quer especificando os atributos cor e espessura, quer definindo uma imagem para a representação através do formato XPM.
[_polygon] Secção que permite redefinir o aspecto gráfico associado aos objectos do tipo polígono (quadrados com o máximo de 32 x 32 pixéis e 2 cores, representados quando necessário em mosaico). Também neste caso o formato utilizado é o XPM.

O ficheiro de texto pode depois ser compilado, utilizando directamente a aplicação cGPSmapper e especificando na linha de comando o argumento typ (por exemplo “cGPSmapper.exe typ MeuTYP.txt”) ou indirectamente, recorrendo ao interface gráfico proporcionado pela aplicação MapSetToolKit.

O que é um Mapset (produto de mapa)?

A aplicação MapSource organiza e gere os conjuntos de mapas como “produtos”. Cada “produto” ou mapset é constituído por um mapa de alto nível para pré-visualização (preview map), por mapas de detalhe (que depois podem ser seleccionados individualmente através da “Ferramenta de Mapa” e carregados no receptor GPS), por um ficheiro .tdb e, opcionalmente, por um ficheiro TYP.

 O que é um ficheiro TDB?

Um ficheiro TDB é no essencial um repositório com informação sobre os ficheiros individuais .img que compõem o mapset. Este ficheiro é lido pela aplicação MapSource, a qual utiliza a informação para exibir a informação do mapa assim como descarregar os ficheiros .img para o receptor GPS.

Os ficheiros TDB utilizam uma estrutura interna simples do tipo “flat file” que compreende quatro secções: 

Cabeçalho
Copyright
Overview
Detalhe

A primeira das secções armazena o Product ID, número único associado ao mapset e que é registado no Windows Registry (em HKEY_LOCAL_MACHINESOFTWAREGarminMapsourceProducts), bem como a versão do mapa (ou seja Product Version), a versão em que é produzido o ficheiro TDB e as designações do mapa: Map series name e Map family name.

A segunda secção armazena informação sobre os direitos de autor.

Já a terceira secção descreve o mapa de alto nível utilizado pela aplicação MapSource para pré-visualização (preview map. Trata-se de um mapa de baixa resolução que serve de referência aos mapas detalhados. Este mapa é formado por um conjunto de objectos do tipo polígono, conhecidos como “áreas de definição”, que correspondem aos mapas detalhados.

Finalmente a secção Detalhe armazena a descrição de cada um dos mapas detalhados que constituem o mapset.


Comentários

3 comentários a “Algumas Noções Sobre os Mapas Vectoriais Carregados nos Receptores GPS da Garmin”

  1. Boas.
    Mais um excelente trabalho do João Cardoso.
    Tem valido a pena todo o nosso esforço.
    Workshop a vista pessoal.
    Inté.

    1. Boas.
      Pensamos que vamos conseguir, ter o pessoal capaz de fazer os seus próprios mapas, com os tracks e POI’s de acordo com a sua filosofia.
      Inté.