Mapserver e Mapscript. João Araujo

Documentos relacionados
Introdução ao Mapserver

DISPONIBILIZAÇÃO DE DADOS GEOGRÁFICOS NA INTERNET

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

Redes de Computadores I Seminário Novas Tecnologias em Redes HTML5. Jessica da Silva Hahn Letícia Aparecida Coelho

Programação para Web HTML - Parte 2

COM222 DESENVOLVIMENTO DE SISTEMAS WEB. Aula 01: HTML e CSS

Programação Web Aula 2 XHTML/CSS/XML

Tags estruturais <!-- --> Cria um comentário <html> </html> Envolve todo um documento html <head> </head> Envolve o cabeçalho de um documento html

Programação WEB I DOM (Document Object Manager)

Recursos Complementares (Tabelas e Formulários)

MONTANDO UMA CONSULTA COM FILTROS. Vamos criar uma tela que gere uma relação de dados, escolhendo a ordenação e um filtro.

Ferramentas para Multimídia e Internet

Introdução à linguagem HTML. Volnys Borges Bernal

Tabelas. Uma célula de dados pode conter texto, imagens, listas, parágrafos, formulários, linhas horizontais, etc. <table> <tr>

Tabelas Div Span Frames Formulários

17/01/2016 PROGRAMAÇÃO EM AMBIENTE WEB I UM POUCO DE HISTÓRIA WWW. Tudo começou com a ARPANET; 1977 ARPANET nasce

TECNOLOGIA WEB. XHTML Aula 5. Profa. Rosemary Melo

Volnys Bernal. Introdução à linguagem HTML. Introdução à linguagem HTML. Visão geral. Visão geral. Visão geral. Visão geral.

TAGS. O HTML trabalha com o sistema de tags (etiquetas). Esse sistema funciona da seguinte maneira. <tag>conteúdo da tag</tag>

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

PROGRAMAÇÃO EM AMBIENTE WEB I

Os slides que seguem mostram os principais comandos da linguagem HTML. Conhecer o código HTML possibilita a criação de páginas leves que contenham ape

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

Finalidade dos formulários

if( document.dados.tx_ .value=="" document.dados.tx_ .value.indexof('.

OS BASTIDORES DA INTERNET NO BRASIL

Introdução à linguagem Perl

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

WWW, CGI e HTTP Java Deployment Course: Aula 2. por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE 28 de Abril de 1999

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

4. Características Gerais das Tabelas do HTML

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Desenvolvimento de Aplicações para Internet

Programação orientada a objetos

Mini-curso MapServer Avançado PHP/MapScript

Capítulo 4. Programação em ASP

Geoprocessamento. Banco de Dados geo-referenciados. João Ronaldo Tavares de Vasconcellos Júnior

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

Teste de avaliação de frequência Parte Prática

Introdução a Web Standards. Reinaldo Ferraz e Clécio Bachini

Desenvolvimento Web II

Tabelas. Tabelas. Iniciando a construção... Atributos <table> Tag <table></table> 05/04/2011

CRIAÇÃO DE APLICAÇÃO WEBMAPPING COM O AUXILIO DO ALOV MAP

Introdução ao HTML5 Canvas

COMO FUNCIONA UM FORMULÁRIO

Capítulo 9 - Imagens. Imagens

PROGRAMAÇÃO PARA INTERNET. Prof.: Jean Carlo Mendes

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

HTML: FORMULÁRIOS SUMÁRIO. Conceito Tag FORM Tag INPUT Tag BUTTON Tag TEXTAREA Tag SELECT

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo

Links, Imagens e Tabelas

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)

Desenvolvimento Web. HTML 5 Parte I. Prof. Vicente Paulo de Camargo

Webinar. Introdução ao Uso do Software i3geo

AULA 02 Introdução (HTML, CSS e Javascript) PROGRAMAÇÃO PARA WEB Marcelo Henrique dos Santos

Módulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Introdução 1 PARTE I: A LINGUAGEM DA WEB 5

WebServices (Serviços Web) João Araujo

Guia de Bolso HTML e XHTML

AJAX. Prof. Marcos Alexandruk

<script language="javascript1.2" src="

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Módulo 17E. Revisões de HTML. A) Noções básicas de HTML (cont.)

PROCEDIMENTO PARA INTERPOLAR VALORES NULOS E NEGATIVOS DAS IMAGENS SRTM NO ArcGis v10 EXTENSÃO 3D Analyst

HTML & CSS. uma introdução

Informática I. Aula 3. Aula 3-03/09/2007 1

PHP Básico Módulo I. Carga Horária: 32 horas. Conteúdo: Conceitos Básicos Introdução; Características; Scripts;

Síntese da aula anterior

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Transcrição:

Mapserver e Mapscript João Araujo

Mapscript Mapscript estende as funcionalidades do mapserver para linguagens de script. Permite o uso de mapas com linguagens de programação. Permite carregar; manipular e salvar mapas.

Mapscript e OO Mapscript é orientado a objetos. Coleção de classes e atributos.

Suporte PHP Python Perl Ruby C# e TCL em desenvolvimento.

hello.pl (10.1) #!/usr/bin/perl use strict; use mapscript; use CGI ":cgi"; my $resp = new CGI; # Cria um imagem com nome único a cada vez que é chamado my $image_name = sprintf("ms-hello%0.6d",rand(1000000)).".png"; # Cria uma nova instância do map object my $map = new mapscript::mapobj("/var/www/mapserver/hello.map"); # Cria uma imagem a partir do mapa e salva my $img = $map->draw(); $img->save("/var/www/mapserver/tmp/".$image_name); # Dá a saída no formulário HTML e a imagem do mapa print $resp->header(); print $resp->start_html(-title=>'mapscript Hello World '); print <<END_OF_HTML; <form name="pointmap" action="hello.pl" method="post"> <input type="image" name="img" src="/mapserver/tmp/$image_name"> </form> END_OF_HTML print $resp->end_html();

Início #!/usr/bin/perl -> chama perl para executar. use strict; -> Faz com que todas as variáveis tenham um escopo (com my). use mapscript; use CGI ":cgi";; -> Torna os módulos mapscript e cgi disponíveis para perl. my $resp = new CGI; -> cria um objeto cgi

Criando map object my $image_name = sprintf("mshello%0.6d",rand(1000000)).".png"; Cria um imagem com nome único a cada vez que é chamado. my $map = new mapscript::mapobj("/var/www/mapserver/hello.map"); Cria uma nova instância do map object.

Salvando o mapa my $img = $map->draw(); $img->save("/var/www/mapserver/tmp/".$image_name); Cria uma imagem a partir do mapa e salva

Saída no formulário HTML print $resp->header(); print $resp->start_html(-title=>'mapscript Hello World '); print <<END_OF_HTML; <form name="pointmap" action="hello.pl" method="post"> <input type="image" name="img" src="/mapserver/tmp/$image_name"> </form> END_OF_HTML print $resp->end_html();

hello.map (10.1) # Arquivo "Hello World" NAME "Hello_World" SIZE 400 300 IMAGECOLOR 249 245 186 IMAGETYPE png EXTENT -1.00-1.00 1.00 1.00 WEB TEMPLATE "hello.html" IMAGEPATH "/var/www/mapserver/tmp/" IMAGEURL "/mapserver/tmp/" END LAYER STATUS default TYPE point FEATURE POINTS 0.0 0.0 END TEXT "Hello World" END # end feature CLASS STYLE COLOR 255 0 0 END LABEL TYPE bitmap END END END END

Resultado

API do Mapscript

Instâncias de Class associadas a um Layer Class 0..* 1 Layer Map 0..1 0..* Layer

Class com Style e Label Class 1 0..* Style Class 1 0..1 Label

Uma Aplicação Prática O início é como antes: #!/usr/bin/perl use strict; use mapscript; use CGI ":cgi"; # Default values # my $script_name = "/cgi-bin/exemplo.pl"; # path defaults my $map_path = "/var/www/mapserver/"; my $map_file = "global.map"; my $img_path = "/var/www/mapserver/tmp/";

Iniciamos os parâmetros do formulário # Navigation defaults my $zoomsize=2; my $pan="checked"; my $zoomout=""; my $zoomin=""; my $countries = "CHECKED"; my $labels = "CHECKED";

Definimos as coordenadas x e y do click do mouse my $clickx = 300; my $clicky = 200; # foi definido no centro da imagem

Criando point e retângulo de referência my $clkpoint = new mapscript::pointobj(); my $old_extent = new mapscript::rectobj(); # clkpoint: ponto de referência do click # old_extent: referência do retângulo de extensão antigo ou default, na primeira execução.

Define extent como array my @extent = (-180, -90, 180, 90); my $max_extent = new mapscript::rectobj(-180, -90, 180, 90); # max_extent para impedir que o mapa seja manipulado além de seus valores máximos.

Cria objeto cgi e mapobject my $parms = new CGI; my $map = new mapscript::mapobj($map_path.$map_file); #mapobject baseado em mapfile.

Testa se foi invocado por form. if ( $parms->param() ) { # se foi, use os parâmetros do formulário.

Se foi primeira execução Define valores para imagem, url, etc. my $map_id = sprintf("%0.6d",rand(1000000)); my $image_name = "third".$map_id.".png"; my $image_url="/mapserver/tmp/".$image_name; my $ref_name = "thirdref".$map_id.".gif"; my $ref_url="/mapserver/tmp/".$ref_name; my $leg_name = "thirdleg".$map_id.".png"; my $leg_url="/mapserver/tmp/".$leg_name;

Desenha mapa, legenda e referência e salva imagens my $image=$map->draw(); $map->drawlabelcache($image); $image->save($img_path.$image_name); my $ref = $map->drawreferencemap(); $ref->save($img_path.$ref_name); my $leg = $map->drawlegend(); $leg->save($img_path.$leg_name);

Pega novo extent #Novo extent ou valor default my $new_extent = sprintf("%3.6f",$map->{extent}->{minx})." ".sprintf("%3.6f",$map->{extent}->{miny})." ".sprintf("%3.6f",$map->{extent}->{maxx})." ".sprintf("%3.6f",$map->{extent}->{maxy});

Pega escala para mostrar na tela. # Pega a escala das imagens para mostrar na tela. my $scale = sprintf("%10d",$map->{scale}); # Converte o click do mouse de coordenadas de imagem para coordenadas do mapa. my ($mx,$my) = img2map($map->{width},$map- >{height}, $clkpoint,$old_extent); my $mx_str = sprintf("%3.6f",$mx); my $my_str = sprintf("%3.6f",$my);

Imprime cabeçalho html print $parms->header(); print $parms->start_html(-title=>'perl Mapscript Map');

Imprime até achar EOF print <<EOF; <html> <head><title>mapscript Third Map</title></head> <body bgcolor="#e6e6e6"> <FORM METHOD=POST ACTION="$script_name"> <table width="100%" border="1"> <tr><td width="60%" rowspan="6"> <input name="img" type="image" src="$image_url" width=600 height=300 border=2> </td> <td width="40%" align="center" colspan="3"> <img SRC="$ref_url" border=1> </td>...

FIM