Mini-curso MapServer Avançado
PHP/MapScript
Carlos Henrique Bughi
bughi@univali.br
Laboratório de Computação Aplicada – G10
Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí
PHP/MapScript
Agenda
• Sobre o G10 • Introdução ao PHP/MapScript – O que é – Porque usar – Estrutura • Requisitos – PHP • Conceitos básicos • Programação OO • Acessando PostGreSQL – AJAX• Modelo de objetos PHP/MapScript • Modelando a aplicação
– Requisitos do sistema – Diagrama de classes
Laboratório de Computação Aplicada – G10
Histórico e Características
• Início das atividades: 2001 – Áreas: Engenharia Ambiental Ciências da Computação Oceanografia Geografia • Linhas de Pesquisa:
– Desenvolvimento de sistemas de informação e apoio à decisão com suporte geoespacial
Laboratório de Computação Aplicada – G10
Histórico e Características
• Equipe atual:
– 1 Doutor – 1 Mestre – 2 Mestrandos – 6 Técnicos – 12 GraduandosLaboratório de Computação Aplicada – G10
Histórico e Características
• Infra-estrutura (80m2):
– 4 Servidores
– 6 Workstations
– 20 PCs
– 4 Notebooks
Laboratório de Computação Aplicada – G10
Histórico e Características
• 42 Projetos
• Troféu FINEP de Inovação Tecnológica
– Etapa Sul – 2003
– Etapa Sul – 2006
• Finalista do Prêmio Empreendedorismo
– Guia do Estudante - 2005
Laboratório de Computação Aplicada – G10
Histórico e Características
• Projetos em desenvolvimento
– Projeto TAMAR – SITAMAR – SEAP/PR – RASTRO e COB
– Porto de Itajaí – Sistema de Informação Ambiental – MMA/SRH – Censo Gestão de Recursos Hídricos – MMA/FNMA – Pesca Responsável
Laboratório de Computação Aplicada – G10
PHP/MapScript
Definição
• O PHP/MapScript é um módulo desenvolvido
para a linguagem de script PHP que permite o
uso de funções e classes existentes no
Mapserver (desenvolvido utilizando a linguagem
C);
• Desenvolvido e mantido pela DM Solutions
Group, atualmente encontra-se na versão 4.8.1
(03/01/06);
• Permite aliar as facilidades de uma linguagem
de programação com as funcionalidades SIG do
MapServer;
PHP/MapScript
Definição
PHP/MapScript
Porque usar
• O PHP/MapScript permite fazer coisas que o
MapServer CGI não consegue:
– Criação de layers dinâmicas;
– Navegação customizada;
– Classificação de layers em tempo real;
– Maior capacidade de pesquisa;
– Suporte à leitura e gravação de shapefiles;
– Manipulação dinâmica de definições do arquivo
MapFile;
– Liberdade para a criação de lógica e algoritmos
complexos;
PHP/MapScript
Requisitos
• Para utilizar o PHP/MapScript, alguns requisitos
básicos são necessários:
– Conhecimento do MapServer CGI e da estrutura do
MapFile;
– Conhecimento da linguagem PHP;
– Seguindo as últimas tendências, conhecimento em
AJAX para a construção de aplicações com
PHP/MapScript mais eficientes e amigáveis ao
usuário final;
Estrutura do MapFile
MAP QUERYMAP SYMBOL WEB REFERENCE_MAP SCALEBAR LEGEND LAYER CLASS STYLE GRID FEATURE LABEL PROJECTION 0..1 0..* 0..1 0..1 0..1 0..1 0..* 1..* 0..* 0..1 0..* 0..1 0..1 0..1 0..1 0..1Estrutura do MapFile
• Objetos MapFile
– Map: Objeto mestre do MapFile
– Web: Define parâmetros para uma interface web
– Layer: Descreve as camadas utilizadas para fazer o mapa – Class: Define classes temáticas para uma camada;
– Label: Define formatos de fonte e apresentação de textos; – Style: Mantém parâmetros para simbolização
• Parâmetros da requisição (para testes com CGI):
– Mode: Modo de operação do MapServer (map) – Map: Caminho para o arquivo MapFile
Estrutura do MapFile
• Criação do mapfile para o sistema em
PHP/MapScript
– Layers vetoriais
• brasil.shp • capitais.shp • eixo_geo.shp • lote_geo.shp • quadra_geo.shp • via_geo.shp– Layers raster
• Rectifyikonos_mini.tifObtendo informações sobre o Shapefile:
Estrutura do MapFile
• Criação do mapfile para o sistema em
PHP/MapScript
– Limites do mapa
• -47.886453 -15.809809 -47.848327 -15.786974
– Imagem para o mapa de referência
Construindo uma aplicação WebGIS com
PHP/MapScript
Sistema WebGIS com PHP/MapScript
Requisitos
• Requisitos contemplados
– Pan
– Zoom in pontual
– Zoom in por seleção
– Zoom out
– Retorno aos limites originais
– Pesquisa pontual
– Pesquisa por seleção
– Mapa de referência dinâmico
– Listagem dinâmica de camadas
– Cálculo de distância
Sistema WebGIS com PHP/MapScript
Arquitetura
Cliente Web (Navegador) Servidor HTTP Requisição AJAX Resposta Motor PHP MapFile Mapscript requisicao index.html rotinas.js principal.cssSistema WebGIS com PHP/MapScript
Estrutura de arquivos e diretórios
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• principal.css: arquivo de definição de estilos
– Referenciado no index.html através de:
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Variáveis globais:
• btnAcao: define a ação atual
• requisicaoAcao: define a ação passada para a requisição • requisicaoParametros: define parâmetros adicionais
passados para a requisição
btnAcao
requisicaoAcao
Valores possíveis Valores possíveis 1 – zoomin 2 – zoomout 3 – query 4 – reset 5 – distancia 6 – pan 7 – inserirMarco iniciarSistema retornarLimite mudarStatusCamada realizarZoomPorSelecao realizarZoomPontual realizarPesquisaPorSelecao realizarPesquisaPontual inserirMarco inserirPontoDistancia
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Variáveis do mapa:
• limite: limites do mapa separados por vírgula (retornado pelo servidor);
• larguraPadrao: largura da imagem (deve ser definido direto no arquivo);
• alturaPadrao: altura da imagem (deve ser definido direto no arquivo);
– Variáveis de seleção:
• offsetX e offsetY: armazenam o clique inicial do mapa;
• minx, miny, maxx e maxy: armazenam as coordenadas da seleção; • arrastando: status da seleção, arrastando = true indica que uma
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Métodos:
• inicia(): chamado no evento onload() do elemento body, realiza a primeira requisição ao servidor;
• iniciaBtn(): define as imagens desabilitadas de cada botão; • selecionaBtnAcao(acao): define a imagem habilitada para o
botão definido pelo argumento acao;
• criaAjax(): retorna o objeto XMLHttpRequest;
• enviaRequisicao(): realiza uma requisição em segundo plano utilizando Ajax;
• codificaXml(xmlDoc): analisa XML de retorno decidindo, através da ação, qual método deve ser chamado;
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Métodos:
• montarMapa(xmlDoc): atualiza o mapa principal, a imagem de referência, a imagem de escala, os limites do mapa de acordo com os valores existentes no arquivo xmlDoc;
• montarCamadas(xmlDoc): Cria a lista de camadas de acordo com os valores existentes do arquivo xmlDoc;
• atualizarCamadas(xmlDoc): atualiza a visibilidade das camadas do sistema;
• montarResultado(xmlDoc): Cria uma lista com os resultados de uma pesquisa;
• ocultarResultado(): oculta elemento DIV contendo a lista de resultados da pesquisa;
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Métodos:
• mudaStatusCamada(camada): envia requisição com a camada que terá o status alterado;
• aguardar(mostrar): mostra ou oculta o elemento DIV com a mensagem “aguarde”;
• montarDistancia(xmlDoc): atualiza o mapa principale os dados de distância de acordo com os valores existentes no arquivo xmlDoc;
• cancelarDistancia(): envia uma solicitação para limpar os pontos de cálculo de distância;
Sistema WebGIS com PHP/MapScript
Arquivos lado cliente
• rotinas.js
– Métodos:
• iniciaMovimento(e): função associada ao evento
onmousedown do DIV mapa responsável por iniciar o processo de seleção de uma área no mapa;
• movimentaMouse(e): função associada ao evento
onmousemove do DIV mapa responsável por desenhar o DIV de seleção e mostrar as coordenadas do mapa;
• levantaMouse(e): função associada ao evento onmouseup do DIV mapa responsável por obter as coordenadas finais da seleção e realizar a requisição para zoom ou pesquisa;
• pixelParaGeo(x,y, largura,altura,limite): Converte píxel para coordenada geográfica;
Estrutura dos arquivos XML trocados pelo
sistema
Sistema WebGIS com PHP/MapScript
Documentos XML
Sistema WebGIS com PHP/MapScript
Documentos XML
• Retorno das ações retornarLimite,
realizarZoomPontual, realizarZoomPorSelecao,
mudarStatusCamada
Sistema WebGIS com PHP/MapScript
Documentos XML
• Retorno das ações realizarPesquisaPontual e
realizarPesquisaPorSelecao
Definindo o esqueleto da nossa classe
Mapscript.php
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Classe MapScript: responsável pela integração
entre o sistema e o MapServer;
• Atributos:
– private $mapFileUsuario: indica o arquivo MapFile
utilizado para a sessão do usuário;
– private $limiteAtual: indica os limites do mapa;
– private $objMapa: objeto mapObj;
– const MAPFILEORIGINAL: indica o arquivo MapFile
padrão, deve ser informado pelo programador;
– const LIMITEORIGINAL: indica os limites iniciais do
mapa, deve ser informado pelo programador;
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– __CONSTRUCT($mapfile = null, $limite = null)
• Construtor da classe MapScript, se os parâmetros $mapfile e $limite não forem informados serão utilizados os valores das constantes MAPFILEORIGINAL e LIMITEORIGINAL;
– public retornaMapFile()
• Salva arquivo MapFile para a sessão do usuário;
– public retornaImagemEscala()
• Salva imagem da escala e retorna o caminho;
– public retornaImagemMapa()
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– public retornaImagemReferencia ()
• Salva imagem de referência dinâmica e retorna o caminho;
– public alteraStatusCamada($camada)
• Inverte status da camada passada por parâmetro
– public realizaZoomPontual ($x, $y, $direcao)
• Realiza zoom pontual na coordenada $x e $y; • Direção:
– 2 Æ zoom in (2 vezes) – -2 Æ zoom out (2 vezes) – 1 Æ pan
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– public realizaZoomPorSelecao ($minx,$miny, $maxx,
$maxy)
• Realiza zoom na seleção definida por $minx, $miny, $maxx e $maxy;
– public retornarAosLimitesOriginais ()
• Ajusta os limites do mapa conforme definido na constante LIMITEORIGINAL;
– private alteraLimite($limite)
• Altera os limites do mapa para o definido pela variável $limite;
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– public retornaLimite()
• Retorna os limites atuais do mapa;
– public realizaPesquisaPontual ($x, $y, $camada)
• Realiza pesquisa pontual (coordenada $x e $y) na layer definida pela variável $camada;
• Retorna documento XML contendo o resultado da pesquisa;
– public realizaPesquisaPorSelecao ($minx, $miny,
$maxx, $maxy, $camada)
• Realiza pesquisa espacial na layer $camada através do
polígono defino pelas variáveis $minx, $miny, $maxx, $maxy; • Retorna documento XML contendo o resultado da pesquisa;
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– private montarXmlPesquisa ($objLayer)
• Constrói documento XML de pesquisa segundo resultados do objeto $objLayer;
• Retorna o documento;
– public retornaCamadas ($classificar=true)
• Constrói documento XML contendo a relação das camadas existentes;
• Se $classificar for igual a false então não é inserido os dados de classificação (útil para ajuste de status);
Sistema WebGIS com PHP/MapScript
Classe MapScript
• Métodos:
– private pixelParaGeoX ($x)
• Retorna valor em coordenada do mapa de um valor $x em píxel;
– private pixelParaGeoY ($y)
• Retorna valor em coordenada do mapa de um valor $y em píxel;
– Os métodos utilizados para calcular distância serão
apresentados mais adiante;
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• mapObj (objeto do mapa)
– Construtor: ms_newMapObj($mapfile);
– Membros da classe: Tabela 10, página 22;
– Métodos da classe: páginas 23 a 33;
– Métodos utilizados pelo sistema:
• int save(string filename)
– Salva o estado do objeto map atual em um arquivo. Retorna -1 em caso de erro. Use caminhos absolutos. Se um caminho relativo for usado, então ele será relativo ao local do MapFile.
• imageObj drawScaleBar()
– Renderiza a barra de escala e retorna o manuseamento em um objeto image.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• mapObj (objeto do mapa)
– imageObj draw()
• Renderiza o mapa e retorna o manuseamento em um objeto image.
– imageObj drawScaleBar()
• Renderiza a barra de escala e retorna o manuseamento em um objeto image.
– mapObj clone()
• Retorna o handle para um novo mapObj que é um clone do mapObj atual. Todos os parâmetros do mapObj são
copiados para o novo mapObj. Retorna NULL em caso de erro.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• mapObj (objeto do mapa)
– layerObj getLayerByName(string layer_name)
• Retorna um layerObj de um mapa dado um nome de um layer. Retorna FALSE se o layer não existir.
– void zoompoint(int nZoomFactor, pointObj oPixelPos, int nImageWidth, int nImageHeight, rectObj oGeorefExt)
• Faz zoom para uma posição XY. Os parâmetros são:
– Zoom factor: valores positivos aumentam o zoom, valores negativos diminuem o zoom. Fator 1 centraliza.
– Pixel position (pointObj): coordenadas x, y do click com (0,0) no canto superior-esquerdo.
– Width: largura da imagem atual em pixel. – Height: altura da imagem atual em pixel.
– Georef extent (rectObj): extents georeferenciados atuais.
– MaxGeoref extent (rectObj): (opcional) extent georeferenciado máximo. Se provido então será impossível fazer zoom para fora desses extents.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• mapObj (objeto do mapa)
– void zoomrectangle(rectObj oPixelExt, int
nImageWidth, int nImageHeight, rectObj oGeorefExt)
• Ajusta os extents do mapa para os extents passados. Os parâmetros são:
– oPixelExt (rect object): Extents em pixel, com (0,0) no canto superior-esquerdo;
– Width: largura em pixel da imagem atual – Height: altura em pixel da imagem atual
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• mapObj (objeto do mapa)
– void setextent(double minx, double miny, double
maxx, double maxy)
• Ajusta os extents do mapa (no sistema de referência definido no MapFile).
– array getlayersdrawingorder()
• Retorna um array contendo os índices dos layers na ordem que eles serão desenhados.
– layerObj getLayer(int index)
• Retorna um layerObj da layer informada pelo index (0=primeira layer)
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– Objetos layerObj podem ser retornados pelo mapObj;
– Construtor: ms_newLayerObj ($mapObj [, layerObj]);
– Membros da classe: Tabela 7, página 12;
– Métodos da classe: páginas 13 a 20;
– Métodos utilizados pelo sistema:
• int set(string property_name, new_value)
– Ajusta um novo valor à uma propriedade de um objeto. Retorna -1 em caso de erro.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– int queryByPoint(pointObj point, int mode, double buffer)
• Pesquisa no layer em uma localização pontual especificada em coordenadas do mapa georeferenciado (não em pixels).
• A pesquisa é feita em todos os shapes que fazem parte de uma CLASSE que contém um valor TEMPLATE ou qualquer classe de um layer que contenha um valor LAYER TEMPLATE.
• O modo é MS_SINGLE ou MS_MULTIPLE dependendo do número de resultados que você quer. Passar buffer <=0 opta-se pelas
tolerâncias ajustadas no arquivo map (em pixels) mas você pode usar um buffer especificado em unidade do mapa.
• Retorna MS_SUCCESS se shapes foram encontrados ou MS_FAILURE se nada foi encontrado ou se algum outro erro ocorreu.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– int queryByRect(rectObj rect)
• Pesquisa no layer usando um retângulo especificado em coordenadas do mapa georeferenciado (i.e. não em pixels). • A pesquisa é feita em todos os shapes que fazem parte de
uma CLASSE que contém um valor TEMPLATE ou qualquer classe de um layer que contenha um valor LAYER
TEMPLATE.
• Retorna MS_SUCCESS se shapes foram encontrados ou MS_FAILURE se nada foi encontrado ou se algum outro erro ocorreu.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– int getNumResults()
• Retorna o número de resultados do layer na última pesquisa.
– int getMetaData(string name)
• Busca uma entrada de metadado em um layer por nome. Retorna "" se nenhuma entrada combina com o nome. Perceba que a busca é caso sensitivo.
– int open()
• Abre o layer para uso com o getShape(). Retorna MS_SUCCESS/MS_FAILURE.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– resultCacheMemberObj getResult(int index)
• Retorna um objeto resultCacheMemberObj com os índices de um objeto layer
• Parâmetro index varia de 0 à numresults-1.
• Retorna um objeto válido ou FALSE(0) se o index é inválido.
– shapeObj getShape(int tileindex, int shapeindex)
• Recupera um shapeObj de um layer pelo seu índice.
tileindex é usado apenas para shapefiles indexados (você recebe ele de um resultCacheMemberObj retornado por um getResult() por instância).
• Simplesmente passe tileindex = -1 para outras fontes de dados.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– void close()
• Fecha o layer aberto anteriormente com open().
– boolean isVisible()
• Retorna MS_TRUE ou MS_FALSE dependendo se a layer está visível no mapa.
– classObj getClass(int classIndex)
• Retorna um classObj da layer dada um valor de index (0=primeira classe);
• Para descobrir o total de classes, utilize layerObj->numclasses;
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• layerObj (objeto da layer)
– int addFeature(shapeObj shape)
• Adiciona uma nova feature em um layer. Retorna -1 em caso de erro.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• RectObj (objeto que define um retângulo)
– Podem estar embutidos em outros objetos ou criados
a partir do construtor;
– Construtor: RectObj ms_newRectObj()
– Membros da classe:
maxy double maxx double miny double minx double Nome Tipo de dadoSistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• RectObj (objeto que define um retângulo)
– Métodos da classe:
– int set(string property_name, new_value)
• Ajusta um novo valor à propriedade de um objeto. Retorna -1 em caso de erro.
– void setextent(double minx, double miny, double maxx, double maxy)
• Ajusta os extents do retângulo.
– int draw(mapObj map, layerObj layer, imageObj img, int class_index, string text)
• Desenha um retângulo individual usando layer. O class_index é usado para classificar o retângulo baseado nas classes definidas para o layer. A string text é usada para anotar o retângulo. Retorna MS_SUCCESS/MS_FAILURE.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• RectObj (objeto que define um retângulo)
– double fit(int width, int height)
• Ajusta o extents do retângulo para se encaixar na largura/altura especificada.
– int project(projectionObj dentro, projectionObj fora)
• Projeta o retângulo da projeção "dentro" (primeiro
argumento) para a projeção "fora" (segundo argumento). Retorna MS_SUCCESS/MS_FAILURE.
– void free()
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• PointObj (objeto que define um ponto)
– Construtor: Point = ms_newPointObj();
– Membros da classe:
Usado apenas para arquivos shape medidos. Ajuste para zero para outros m
double
Usado para arquivos shape 3D. Ajuste para zero para outros tipos.
z double y double x double Observações Nome Tipo de dado
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• PointObj (objeto que define um ponto)
– Métodos da classe:
– int setXY(double x, double y [, double m])
• Ajusta os valores das coordenadas X,Y. O terceiro parâmetro m é usado apenas para medição de shape files e não é obrigatório. • Retorna 0 em caso de sucesso, -1 caso contrário.
– int setXYZ(double x, double y, double z [, double m])
• Ajusta os valores das coordenadas X,Y e Z. O quarto parâmetro m é usado apenas para medição de shape files e não é obrigatório. • Retorna 0 em caso de sucesso, -1 caso contrário.
– int draw(mapObj map, layerObj layer, imageObj img, int class_index, string text)
• Desenha o ponto individual usando layer. A classe_index é usado para classificar o ponto baseado nas classes definidas no layer. A string text é usada para anotar o ponto.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• PointObj (objeto que define um ponto)
– double distanceToPoint(pointObj poPoint)
• Calcula a distância entre dois pontos.
– double distanceToLine(pointObject p1, pointObject p2)
• Calcula a distância entre um ponto e uma linha definida por dois pontos passados por argumento.
– double distanceToShape(shapeObj shape)
• Calcula a menor distância entre um ponto e um shape.
– int project(projectionObj dentro, projectionObj fora)
• Projeta o ponto da projeção de "dentro" (primeiro argumento) à projeção "fora" (segundo argumento). Retorna
MS_SUCCESS/MS_FAILURE.
– void free()
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• LineObj (objeto que define uma linha)
– Construtor: LineObj = ms_newLineObj() ;
– Membros da classe:
Somente leitura numpoints Int Observações Nome Tipo de dadoSistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• LineObj (objeto que define uma linha)
– Métodos da classe:
– int add(pointObj ponto)
• Adiciona um ponto ao fim da linha.
– int addXY(double x, double y [, double m])
• Adiciona um ponto ao fim da linha. O terceiro parâmetro m é usado apenas para shapefiles medidos. Não é obrigatório.
– int addXYZ(double x, double y, double z [, double m])
• Adiciona um ponto ao fim da linha. O quarto parâmetro m é usado apenas para shapefiles medidos. Não é obrigatório.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• LineObj (objeto que define uma linha) PointObj
– point(int i)
• Retorna a referência para o ponto número i. A referência é válida apenas durante a vida do lineObj que contém o ponto.
– int project(projectionObj in, projectionObj out)
• Projeta a linha desde a projeção "in" (primeiro argumento) até a projeção "out" (segundo argumento). Retorna
MS_SUCCESS/MS_FAILURE.
– void free()
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• ShapeObj (objeto que define um shape)
– Construtor: ShapeObj = ms_newShapeObj(int type) ;
– Membros da classe:
Somente leitura bounds rectObj Somente leitura tileindex int Somente leitura index int Somente leitura numlines int Somente leitura type int classindex int text string Observações Nome Tipo de dadoSistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• ShapeObj (objeto que define um shape)
– Métodos da classe:páginas 43 a 46;
– Método utilizados pelo sistema:
• int add(lineObj line)
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• ClassObj (objeto que define uma classe)
– Pode ser retornado por uma classe LayerObj;
– Construtor: classObj ms_newClassObj(layerObj layer,
classObj class)
– Membros da classe: Tabela 1, página 4;
– Métodos da classe: Páginas 4 a 6;
– Método utilizado pelo sistema:
• imageObj createLegendIcon(int width, int height)
– Desenha o ícone da legenda e retorna um novo objeto imageObj.
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• StyleObj (objeto que define um estilo)
– Instâncias de styleObj estão sempre embutidas
dentro de classObj.
– Construtor: styleObj ms_newStyleObj(classObj class,
styleobj style)
Sistema WebGIS com PHP/MapScript
Entendendo a estrutura do MapScript
• StyleObj (objeto que define um estilo)
– Métodos da classe:
• int set(string property_name, new_value)
– Ajusta um novo valor à propriedade de um objeto. Retorna -1 em caso de erro.
• styleObj clone()