Pt:Generic Mapping Tools

From OpenStreetMap Wiki
Jump to navigation Jump to search

Please help to translate this page into your language.

GMT example map derived from OSM data

A coleção dos Generic Mapping Tools (GMT: ferramentas genéricos de produzir mapas; [1]) contem programas para gerar mapas de alta qualidade, principalmente usados na produção de mapas científicos. Produzir mapas com GMT normalmente inclui criar um pequeno shell script com uma série de comandos da GMT que desenham as diferentes camadas do mapa e, possivelmente, uma grade de coordenadas.

entrada de dados no GMT

Dados da GMT são arquivos de texto ou binários em formatos específicos; dados XML do OSM não podem ser importados diretamente. Mesmo assim, dados do OSM poderiam ser convertidos a arquivos de texto compatíveis com GMT por programas escritos ad-hoc. Além disso, é possível usar arquivos do formato shapefile da ESRI como formato intermediário; para ambos os formatos do OSM e da GMT existem ferramentas de conversão.

Adicionalmente, dados do OSM podem ser importados via osm2pgsql a um banco de dados PostgreSQL. Com ajuda do programa ogr2ogr da GDAL [2], camadas da GMT podem ser produzidas por especificar uma consulta SQL espacial. ogr2ogr pode realizar qualquer transformação de coordenadas durante da conversão, se for necessário.

Para cada categoria de itens mostrada no mapa, uma camada separada da GMT precisa ser criada. Os seguintes comandos extraem diferentes tipos de estradas/ruas a dois arquivos de texto em formato da GMT e transformam da projeção Mercator a Latitude/Longitude (os parâmetros para o acesso ao banco de dados precisam ser adaptados à instalação local):

ogr2ogr -f "GMT" -s_srs 'EPSG:3857' -t_srs 'EPSG:4326' \
 -sql "select way from planet_osm_line where highway in ('primary', 'secondary', 'tertiary', 'unclassified', 'residential')" \
   roads01_example.gmt PG:"dbname=yourdatabase user=yourusername"
ogr2ogr -f "GMT" -s_srs 'EPSG:3857' -t_srs 'EPSG:4326' \
 -sql "select way from planet_osm_line where highway not in ('primary', 'secondary', 'tertiary', 'unclassified', 'residential')" \
  roads02_example.gmt PG:"dbname=yourdatabase user=yourusername"

De forma semelhante, polígonos podem ser obtidos:

ogr2ogr -f "GMT" -s_srs 'EPSG:3857' -t_srs 'EPSG:4326' \
 -sql "select way from planet_osm_polygon where \"natural\" like 'wetland'" \
   wetland_example.gmt PG:"dbname=yourdatabase user=yourusername"

Recomenda-se trabalhar com um banco de dados restrito à região-alvo, ou delimitar os dados produzidos através de uma condição WHERE correspondente na consulta SQL.

exemplo de uso da GMT

Os arquivos de texto obtidos podem ser utilizados com a ferramenta da GMT psxy; psbasemap desenha as margens do mapa, a escala e a bussola (coordenadas, projeção etc. precisam ser adaptados às necessidades individuais):

psxy -R-46.81/-46.77/-1.05/-1.015 -JM10c -O -K -m -W.7,black,- < roads02_example.gmt > output.eps
psxy -R-46.81/-46.77/-1.05/-1.015 -JM10c -O -K -m -W2p/0/0/0 < roads01_example.gmt >> output.eps
psxy -R-46.81/-46.77/-1.05/-1.015 -JM10c -O -K -m -W.7p/255/255/255 < roads01_example.gmt >> output.eps
psbasemap -R-46.81/-46.77/-1.05/-1.015 -JM10c -L-46.803/-1.046/-1.046/1 \ 
 -B1mf1mg1mwnES -T-46.807/-1.022/1 -O >> output.eps