O que é o formato GPX?

GPX, ou GPS Exchange Format, é um formato de armazenamento de dados GPS aberto e, como tal, destinado à troca entre aplicações e à partilha entre utilizadores que possam utilizar software diferenciado.

Os seus principais benefícios são:

  • Facilitar a troca de informação entre aplicações e infra-estruturas tecnológicas (MS Windows, MacOS, Linux, etc) diversas;
  • Fácil conversão para formatos proprietários (facto que tem contribuído para um grande suporte dos fabricantes, conforme é possível acompanhar na hiperligação http://www.topografix.com/gpx_resources.asp);
  • Estar ele próprio baseado em formatos abertos (XML).

 Internamente, os documentos GPX são documentos XML (EXtensible Markup Language) que obedecem a estruturas específicas quanto ao conteúdo e semântica, designadas de XML Schema Definition públicas. A primeira versão foi desenvolvida e tornada pública em 2002. Actualmente encontra-se na versão 1.1 (http://www.topografix.com/gpx/1/1/), apresentada a 9 de Agosto de 2004.

Na prática podemos então dizer que o formato GPX é um formato de dados em XML que se destina a armazenar dados de GPS (rotas, caminhos e pontos de passagem). Para poder ser importado por uma aplicação como o MapSource ou o OziExplorer terá então de estar bem formado e válido, conforme as recomendações definidas pelo consórcio W3C (http://www.w3.org/XML/):

 Tal como os documentos XML também os documentos GPX formam uma estrutura do tipo arborescente, a qual tem início num elemento raiz (elemento </gpx>) que organiza e dispõe hierarquicamente todos os outros elementos como “elementos filho”:

gpx

 Assim, um documento GPX apresenta-se como um conjunto estruturado de pontos (elemento </wpt >). Conceptualmente, se estes são armazenados debaixo do elemento raiz (elemento </gpx>) e sem qualquer relação entre si representam apenas pontos de passagem (waypoints), se antes são apresentados como uma colecção ordenada podem então exprimir caminhos (tracks) ou rotas (routes), e assim armazenados dentro de elementos </trk> ou </rte>. Um ponto tem que ter obrigatoriamente preenchido os atributos relativos à longitude e latitude. Estas constituem mesmo as propriedades mínimas para um documento GPX:

<?xml version=”1.0″ encoding=”UTF-8″?><gpx creator=”String” version=”1.1″ xsi:schemaLocation=”http://www.topografix.com/GPX/1/1 gpx.xsd” xmlns=”http://www.topografix.com/GPX/1/1″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
        <wpt lon=”-180.0″ lat=”-90.0″></wpt>
</gpx>

LANDLOUSÃ / TRACÇÃO TOTAL AVENTURAS

Boas.

O LandLousã está a colaborar e a partilhar com o Clube Tracção Total Aventuras de Soure, no apoio ao seu Passeio a Marrocos, cedendo cartografia, tracks, rotas, pontos de interesse e sobretudo experiências e vivências.

Fica a nota e umas fotos, poucas da nossa Expedição recente.

Como adicionar trajectos (tracks) e pontos de passagem (waypoints) a um mapa e convertê-los em caminhos e Pontos de Interesse (POIs)

Sucede por vezes que possuímos trajectos (tracks) ou pontos de interesse (waypoints) que recolhemos em viagens e que gostaríamos de os adicionar a um mapa em construção, enriquecendo-o assim em detalhe, seja através de novos trilhos ou de pontos de interesse a indexar. Para os podermos ter disponíveis no mapa necessitamos de dois programas:

Através da ferramenta GPSMapEdit o utilizador pode não apenas criar mapas como editar e enriquecer mapas existentes através de interfaces gráficas. Os dados são preferencialmente geridos e armazenados no formato polaco ou PFM (extensão .mp). Posteriormente poderão ser compilados através do programa cGPSmapper. O resultado final é disponibilizado através de um ficheiro de extensão .img.

Adicionar Trajectos

A primeira tarefa passa por abrir o mapa que pretendemos trabalhar (pode ser um mapa ainda em construção e armazenado apenas num ficheiro PFM, ou um mapa já compilado e no formato .img)através da ferramenta GPSMapEdit.

De seguida abrimos o ficheiro com os trajectos e os pontos de interesse através do comando “Add…” que se encontra no menu “File”. São suportados os formatos .gdb (Garmin Mapsource) como .gpx (GPX XML).

 

 add01

 

É importante ter em conta que quando queremos adicionar trajectos a um mapa devemos utilizar o “Active Track” que é criado pelo receptor GPS e não um “saved track”, dado que o primeiro possui mais detalhe (isto é, mais pontos armazenados).

Os trajectos são agora visíveis. O utilizador só tem que seleccionar os que lhe interessam e, através do menu contextual que aparece uma vez premido o botão direito do rato, invocar os comandos “Convert To” e “Polyline”.

add04

Depois, há que seleccionar os níveis de ampliação em que se pretende ter o objecto visível (os níveis de ampliação do mapa podem ser vistos na caixa de diálogo “Map Properties”, separador “Levels”, acessível a partir do menu “File”). Por omissão vem sempre o nível mais elevado marcado.

add05

 E, finalmente, definir o tipo/aspecto gráfico que lhe fica associado: 

add06

Adicionar Pontos de Passagem

As tarefas são em tudo idênticas àquelas atrás descritas para os trajectos.

Uma vez adicionado o ficheiro com os pontos de interesse e que se pode encontrar no formato .gdb (Garmin Mapsource) como .gpx (GPX XML), o utilizador só tem que seleccionar um a um os que pretende converter como POIs, invocando os comandos “Convert To” e “Point”.

add07

Depois, há que definir o tipo/aspecto gráfico que lhe ficam associados.

Uma vez terminada a conversão dos trajectos e pontos de passagem em objectos do mapa (respectivamente linhas e pontos), podemos desligar (detach) os ficheiros de dados .gdb ou .gpx do mapa. Todos os trajectos e pontos de passagem não convertidos serão removidos.

Tal operação pode ser realizada a através da caixa de diálogo “Attachments” e disponibilizada ao utilizador através do comando “Attachments”,localizado no menu “View”.

add08

Independentemente do formato do mapa que se está a utilizar, aquele tem que ser guardado sempre no formato PFM (extensão .mp) e o nome deverá conter 8 dígitos. Se se pretender a seguir controlar o aspecto final do mesmo num programa como o MapSource ou até carregá-lo no receptor GPS da Garmin tem então que ser compilado, de modo a se obter um ficheiro .img. Esta tarefa pode ser feita no interior da própria ferramenta GPSMapEdit, através do comando “Garmin IMG/cgpsmapper.exe”, localizado no menu “File”. Apenas tem que se ter o cuidado de indicar a localização correcta do programa cgpsmapper.exe.

Carregado o mapa no MapSource (ver http://landlousa.wordpress.com/2009/08/07/como-carregar-ficheiros-img-no-mapsource/), o aspecto final dos novos objectos é o seguinte:

add10

add11

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

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.