GRÁFICOS VETORIAIS ESCALÁVEIS (SVG) PARA
DISSEMINAR MAPAS PARA WEB INTERATIVOS E
DINÂMICOS
Scalable Vector Graphics (SVG) to disseminate
Web Maps Interactive and Dynamic
Prof. Dr. Nelson Marisco
CECA/UFAL1
1 Centro de Ciências Agrárias-Universidade Federal de Alagoas - Maceió, AL,
Brasil
[email protected]
RESUMO
A Ciência Cartográfica, bem como, a maioria das áreas do conhecimento
humano vem passando por uma série de evoluções proporcionadas pelo advento da
Tecnologia da Informação. A grande quantidade de informações em formato digital
passa a demandar maior interoperabilidade, para atender a uma variedade de
aplicativos e um constante aumento da diversidade de usuários. Dentro desse
contexto esse trabalho procura fazer uma discussão das tecnologias códigos
padronizados para o processo de disseminação de produtos cartográficos pela Web.
Procurando enfatizar a utilização do SVG (Scalable Vector Graphics) para
disseminação pela Internet de Mapas para WEB interativos e dinâmicos.
Palavras Chaves: Mapas para Web, SVG, Padrões
ABSTRACT
The Cartographic Science, as well as most areas of human knowledge has
been undergoing a series of upgrades offered by the advent of Information
Technology. The large amount of information in digital format, shall demand greater
interoperability, to meet a variety of applications and a steady increase in the
diversity of users. Within this context this paper seeks to make a discussion of
technologies standardized codes for the process of dissemination of cartographic
products through the Web. Searching emphasize the use of the SVG (Scalable Vector
Graphics) to spread through the Internet for Web maps interactive and dynamic.
Key Words: Web Maps, SVG, Standard
1-INTRODUÇÃO
A Ciência Cartográfica vem sofrendo constante processo de evolução
impulsionada pelas revoluções tecnológicas proporcionadas pelo advento da
Internet. A Internet pode ser caracterizada como um sistema multimídia, que através
do sistema World Wide Web (Web) possibilita a disseminação de som, imagem,
vídeo e texto concomitantemente de forma interativa e dinâmica. Esse caráter
multimídia da Internet proporciona um excelente instrumento para disseminar
produtos cartográficos através da Web.
Para que se possa aproveitar todas as potencialidades da Web no processo
de disseminação de dados geoespaciais pela Internet, uma evolução do processo de
representação cartográfica faz-se necessário. Esse processo exige que o Mapa seja
pensado não somente como instrumento de comunicação, mas também como
instrumento de análises das informações geoespaciais.
Portanto, em um Mapa para faz-se necessário converter dados geoespaciais
armazenados em Bancos de Dados, em mapas interativos e dinâmicos (Kraak,
2001a, p.09), (Marisco, 2004).
2- OS MAPAS PARA WEB
Os Mapas para Web pode ser caracterizado como sendo todos os produtos
cartográficos disponibilizados na Web, independentemente dos recurso tecnológicos
utilizados no processo. Kraak e Driel, 1997, destacam que os Mapas para Web
baseiam-se em princípios de hipertexto e hiperdocumentos. Kraak e Brown, 2001,
procuram caracterizar os produtos cartográficos disponibilizados na Web com sendo
Web Mapas ou Mapa para Web (ver Fig. 1).
Fig. 1: Características dos Web Mapas ou Mapa para Web, conforme Kraak e Brown
(2001,p.171)
Fonte: Marisco, 2004.
Portanto, os Mapas para Web passam a incorporar as diversas
funcionalidades proporcionadas pela Web. Dentre elas pode-se destacar a escala
gráfica e numérica apresentada de forma dinâmica, a legenda interativa, os símbolos
gráficos (hipertexto, pontos, linhas e polígonos) funcionando como objetos
clicáveis, caixas de seleção, janelas pop-up, etc.
Worms, 2001, p. 91, destaca que visualmente o conteúdo de um produto a
ser apresentado na Web é de fundamental importância. Destacando-se três níveis, a
saber: o nível de conteúdo primário, secundário e terciário.
Meissner, 1997, relaciona os objetos que podem ser utilizados no
desenvolvimento de Mapas para Web (ver Tabela 01).
Tabela 01 - Relação de objetos de interação a serem utilizados.
Componentes
Controles complexos
Grupos de Controles
Controle Simples
Campos de Entrada
Mostradores Estruturados
Mostrador de Informação
Classes de Componentes
Lista de Seleção e/ou de Combinação.
Botões de Comando, Botões de Rádio, Caixas de
atribuição, campos/mostradores de dados.
Cursor do dispositivo de apontamento, escala,
Dial.
Campo de texto, Campo de dados, Campo de
gráfico.
Lista de dados, Tabela de dados, Texto, Gráfico.
Rótulo, Mensagem de Orientação, de Ajuda, de
Alerta, de Aviso, Efeito sonoro, Fala.
Fonte: Marisco, 2004.
2.1 - Funcionalidades utilizadas para projetar Mapas para Web
Há diferentes funcionalidades que podem ser utilizadas ao se projetar
mapas para a Web. Arleth (1999), divide essas funcionalidades em características
intrínsecas e extrínsecas.
As intrínsecas são as técnicas relacionadas à organização gráfica do mapa
internamente e as extrínsecas, aquelas técnicas relacionadas ao controle dos
elementos a serem apresentados no mapa, mas localizados externamente a este.
2.1.1 Características intrínsecas
Para Held (2003), essas características descrevem o conteúdo do mapa, por
um lado evocando o seu aspecto gráfico, e por outro, configurando elementos
interativos que facilitam navegar através do conteúdo do mapa. São elas:
-Filtros: produzem efeitos de sombra nos mapas, servem para harmonizar os seus
diferentes elementos gráficos;
-Cores e contrastes;
-Preenchimento (textura);
-Transparência;
-Animação;
-Elementos interativos do mapa.
2.1.2 Características extrínsecas
Essas características descrevem procedimentos eminentemente interativos,
contendo conteúdo do mapa, e denominam-se de Interface Gráfica com o Usuário
(GUI). Destacando-se:
Resumir a informação para representação: podem ser feitas em forma de texto,
tabelas e gráficos.
-Técnicas como janelas “pop-up” e/ou “mouseover” podem ser utilizadas para
apresentação de tabelas, textos, e objetos gráficos com o intuito de realçar uma
informação, podendo, sofisticadamente ser apresentada, consultas ao banco de
dados. 
 Navegação espacial: Zoom, Pan, “Drill-Down mapping”, mapa para uma visão
geral (overview map), “slider”. As barras de rolagem semelhantes às da janela do
Windows são pouco eficientes nos Mapas para Web.
Controle de camadas (layers): caixa de checagem (check box), botão de rádio.
Caixa de lista de consulta (selecionar diferentes localizações a serem
apresentadas no mapa: nome de ruas, de bairros, de escolas, etc).
Janelas interativas para apresentação do mapa.
 Destacar elementos do projeto:
Conteúdos animados e dinâmicos;
Lista de consulta (server liste);
Slider: utilizada, por exemplo, para a apresentação da escala gráfica do
mapa ou alterações nas cores dos objetos gráficos;
Cores e sons.
3. UM PADRÃO GRÁFICO VETORIAL PARA PROJETAR MAPAS PARA
WEB
Das linguagens e padrões com maior incidência de utilização em projetos
de construção de Mapas para Web, destaca-se os Gráficos Vetoriais Escaláveis
(SVG) .Neumann e Winter (2001) afirmam que com o surgimento, no final de 1999,
do formato padrão SVG, tem-se a possibilidade de efetivamente disponibilizar pela
Web, produtos baseados em formato vetorial.
3.1 – SVG (Scalable Vector Graphics)
Segundo o W3C (2014), o SVG é uma linguagem padronizada em XML
para descrever aplicativos gráficos de forma bidimensional e imagens, bem como
um conjunto de interfaces de script gráficos relacionados. Ele permite três tipos de
objetos gráficos: formas gráficas vetoriais (apresentação de linhas retas e curvas),
imagens e textos. Os objetos gráficos podem ser agrupados, modelados,
transformados e compostos dentro de objetos previamente desenhados.
O W3C (2014) afirma, ainda, que o desenho em formato SVG pode ser
interativo e dinâmico, o que abre enormes possibilidades para sua utilização na
disseminação de produtos cartográficos pela Web. A rica possibilidade de
manipulações de eventos, como “onmouseover”, “onclick”, “onkeypress”, podem
ser atribuído para qualquer objeto gráfico em SVG, utilizando-se de elementos de
animação disponibilizadas em SMIL ou via linguagem JavaScript. Graças à
compatibilidade do formato (estilo), os arquivos em SVG podem ser simplesmente
integrados a um projeto Web já existente. A integração do SVG dentro de DOM
possibilita que os elementos em SVG possam ser controlados e modificados pela
interface gráfica com o usuário, que no caso dos Mapas para Web é composto pelas
suas funcionalidades.
Feringa (2001a) destaca que a grande vantagem do SVG está na
possibilidade de mudança de escala sem prejuízo da qualidade do produto, isto é, sua
escalabilidade, os objetos poderão ser apresentados de modo mais acurado e as
fontes poderão ser utilizadas com maior liberdade.
3.1.1 Atribuindo características aos traços às diferentes camadas do Mapa para
Web (O Atributo “stroke” no SVG).
Partindo-se do princípio de que 1 pixel na tela de um monitor de vídeo
corresponde a "0.2822222mm", isto é, 90dpi de resolução gráfica, testou-se essa
resolução para definir a espessura dos traços (stroke-width) dos contornos das
edificações. Essa opção fez com que os contornos da camada edificações fossem
desenhados no navegador conforme apresentado na Fig. 2. Percebe-se que os
contornos da camada edificações ficam mais vistosos. Entretanto, há uma perda nos
detalhes nas formas das edificações.
Dessa forma, para manter os detalhes optou-se por aumentar a resolução
gráfica para 300 dpi, o que equivale a uma espessura nos traços de aproximadamente
1 pixel, (ver Fig. 3). Com a resolução gráfica em 300 dpi, há uma melhora na
definição dos detalhes das edificações, com uma segunda vantagem que é a
densidade de informações a ser apresentada quando o usuário opta em ver mais de
uma camada do mapa ao mesmo tempo no navegador, além do mais, isso não
implica em aumento do tamanho do arquivo.
Fig. 2 - Captura de tela em 1000% de fator de zoom da representação das
edificações em SVG, com espessura dos traços em 1px (90 dpi de resolução gráfica).
Fonte: Marisco, 2004.
Fig. 3 - Captura de tela no mesmo fator de zoom da Fig. 2, representando a camada
edificações em SVG com a espessura dos traços em 1px (300 dpi).
Fonte: Marisco, 2004.
Além da espessura dos traços (stroke-width), o SVG permite definir as
cores dos traços (stroke), o grau de transparência (stroke-opacity), o formato do
traço (stroke-dasharray), isto é, tracejado, pontilhado ou contínuo.
3.1.2 Atribuindo cores aos objetos gráficos
O SVG permite atribuir cores aos objetos gráficos através de seus
contornos ou de seu preenchimento (fill). Nessas figuras, os objetos gráficos que
representam as edificações são estilizados através dos seguintes atributos em SVG,
especificados em uma CSS (Folha de Estilo em Cascata):
...
.Ruas {
stroke:#FF0000;
stroke-width: 1px;
stroke-opacity: 0;
fill: #FFFF00;
fill-opacity:0.4;
...
Essas especificações podem ser traduzidas da seguinte forma: desenhar os
objetos gráficos; nesse caso, Ruas, com espessura dos contornos de 1px em cores
pretas, preenchimento em cores “vermelho” e 40% transparente. Uma das grandes
vantagens dessa forma de atribuição de cores aos objetos gráficos em SVG é que,
por serem definidos em forma de textos, são passíveis de ser interpretados pelo ser
humano com pouco treinamento. Os estilos podem ser editados e modificados em
qualquer editor de texto, a fim de atender às exigências e necessidades do usuário
ou, como no caso da Cartografia, obedecer a determinadas regras. Vale destacar que
as especificações de cores utilizadas nesse exemplo são os seis dígitos hexadecimais
#FF0000, podendo-se utilizar, também, os nomes das cores.
3.1.3 Elementos textuais
Pode-se definir os elementos textos referentes às características extrínsecas
de um Mapa para Web, isto é, título, subtítulo, legenda, valores, etc; utilizando-se a
Definição de Tipos de Documentos (DTD); já os textos referentes às características
intrínsecas são estilizados através de CSS externa um uma Folha de Estilo.
Para a atribuição de estilo às diferentes entidades textuais referentes às
características extrínsecas ao Mapa para Web projetado, utilizam-se os seguintes
atributos através da DTD:
...
<!ENTITY colorText "fill:darkcyan;">
<!ENTITY knob "fill:white;stroke:darkslategray;stroke-width:2px;">
<!ENTITY strokeWofill "fill:none;stroke:darkcyan;stroke-width:2px;">
<!ENTITY allText "font-family:Helvetica;">
<!ENTITY titleText "font-size:22px;font-weight:bold;">
<!ENTITY subtitleText "font-size:18px;font-weight:bold;">
<!ENTITY headlineText "font-size:14px;font-weight:bold;">
<!ENTITY normalText "font-size:12px;">
<!ENTITY legendText "font-size:11px;text-anchor:end;text...
Nesse procedimento, a atribuição das cores aos elementos textos é
realizada utilizando-se os nomes das cores: darkcyan; o tipo de fonte: sem serif
(Helvetica); o tamanho da fonte varia conforme a importância do texto no Mapa para
Web (10px, 12px, 22px, etc) e o modo de orientação do texto (horizontal, vertical).
Conforme especificação do W3C para o SVG 1.1, deve-se destacar que 1pt
equivale a 1.25px; isto equivale a aproximadamente, 0.35mm. Dessa forma, pôde-se
observar que os tamanhos das fontes dos textos referentes às características
extrínsecas não devem ser inferiores a 10pt (point), já que pode não ser interpretado
pelo usuário. Já para os textos referentes às características intrínsecas e dependendo
da funcionalidade do texto e do nível de zoom de apresentação do Mapa para Web,
pode-se definir um valor inferior a 10pt, sem prejuízo para sua interpretação.
3.2 As interfaces gráficas com os usuários
Diferentes objetos de interação com os usuários podem ser construídos e,
tratados aqui como de características extrínsecas.
3.2.1 Janela suspensa “pop-up”
Através da ação de clicar o botão esquerdo do mouse sobre cada lote, uma
janela suspensa é aberta e uma relação com as informações cadastrais relacionadas
ao lote ativado é apresentada. Uma consulta pré-definida ao servidor de banco de
dados PostgreSQL/PostGis é responsável pela disposição das informações relativas
aos dados cadastrais do lote ativado. A codificação responsável por esse processo
pode ser implementada em um script PHP. Essa funcionalidade pode ser totalmente
implementada em linguagem SVG, scripts PHP e ECMAScript/JavaScrip. Detalhe
dessa ação pode ser visto na Fig. 4.
Fig. 4 - Captura de tela apresentando-se a camada lotes com um lote ativo e a janela
suspensa contendo informações relativas aos dados cadastrais do lote.
Fonte: Marisco, 2004.
3.2.2 Controle de camadas através das caixas de checagem (check-box)
As caixas de checagem são um dos objetos de interação mais utilizados
para controlar a apresentação das diferentes camadas de um Mapa para Web
apresentado no navegador, pois através delas o usuário pode selecionar uma ou todas
as camadas para serem visualizadas ao mesmo tempo.
Diferentes camadas armazenadas em um servidor de banco de dados
PostgreSQL/PostGis, como, por exemplo, lotes, edificações, ruas, quadras, são
apresentadas aos usuários através da ação de clicar o botão direito do mouse sobre as
caixas de checagem, habilitando-as ou desabilitando-as. A opção pela utilização do
SVG, DOM e scripts ECMAScript/JavaScript se justifica pelo fato de, uma vez
habilitada a camada no navegador, não há mais necessidade de fazer novas consultas
ao banco de dados, já que estes ficam armazenados no cliente. Evidentemente,
havendo alterações dos dados no banco de dados, uma nova consulta faz-se
necessária para atualizá-los no cliente.
A Fig. 5 apresenta todas as caixas de checagem habilitadas com as
respectivas camadas apresentadas.
Fig. 5 - Captura de tela com a seta apontando para as caixas de checagem totalmente
habilitadas.
Fonte: Marisco, 2004.
A consulta ao Servidor de Banco de Dados era viabilizada pela função do
Plug-in da Adobe o Visualizador para o SVG nas sua versões 3.0 e 6.0. Entretanto,
esses Plug-in forma descontinuados e todo o processo de apresentação dos dados
armazenados no PostgreSQL/PostGis passam ser realizados pela especificação da
W3C XMLHttpRequest.
Essa especificação define uma Interface de Programação de Aplicativos
(API) que fornece a funcionalidade de cliente com script para transferir dados entre
um cliente e um servidor. Essa especificação é interpretada por todos os
navegadores.
3.2.3 Navegação espacial (“Zooming”, “Panning”)
As funções de Zoom e Pan são de grande importância em projetos de
Mapas para Web, pois são essas funções que permitem ao usuário navegar pelos
dados geoespaciais. Embora, sabendo-se das limitações impostas pela ação de zoom
estático linear, isto é, não acrescentando maiores informações ao mapa e sim
fornecendo a sensação de aproximação ou afastamento da representação ao usuário.
Os trabalha os de Neumann e Isakowski (2002) e Marisco, 2004 apresentam
funcionalidades de “Zoomming” e “Panning” projetados em SVG, DOM e
ECMAScript/JavaScript (Ver Fig. 6 e 7).
3.2.4 Funções Zooming
Os objetos gráficos apresentados na Fig. 6 totalmente projetados em SVG
possuem as seguintes funcionalidades:
 Full Zoom: quando o usuário clica nesse objeto, visualiza todo o mapa;
 Zoom de aproximação: quando o usuário clica nesse objeto, há uma
aproximação do mapa na tela, proporcionando a sensação de ampliação do nível de
detalhamento;
 Zoom de afastamento: quando o usuário clica nesse objeto, há um
afastamento do mapa na tela, proporcionando a sensação de redução do nível de
detalhamento.
Fig. 6 - Interfaces para Zoom
(full zoom, zoom de aproximação e zoom de fastamento)
Fonte: Marisco, 2004.
3.2.5 - Função Panning
Essa interface possibilita ao usuário mover o Mapa para Web através da
ação de clicar o botão esquerdo do mouse sobre as pequenas setas apontadas nas
direções leste, oeste, norte, sul, nordeste, sudeste, noroeste e sudoeste (ver Fig. 7).
Fig. 7 - Interface de Panning
Fonte: Marisco, 2004.
3.2.6 Mapa para visão geral (“overview map”)
Os mapas para visão geral ou “overview map” são utilizados para
possibilitar ao usuário uma visão geral de todo o mapa projetado. Esse mapa é
disponibilizado em forma miniaturizada com o objetivo de possibilitar ao
usuário orientar-se ao navegar pelo mapa.
Funções de “zooming”, “panning” e “drag-and-drop” (arrastar e soltar)
atuam sobre o “overview map”. Na Fig. 8 o “overview map” é indicado por uma
seta. O pequeno retângulo em cor cinza define a área do mapa a ser visualizada
na janela principal pelo usuário. Esse retângulo sofre as influências das funções
de zoom e pan. Ações de arrastar e soltar são executadas quando o usuário clica
com o botão do mouse sobre o retângulo e o arrasta pela área do “overview
map”. Isso permite que uma nova porção do mapa seja interativamente
apresentada na janela principal de visualização do mapa. No “overview map”,
não há necessidade de disponibilizar todas as camadas do mapa.
Fig. 8 - Seta apontando para o “overview map”.
Fonte: Marisco (2004).
3.2.7 Mostrar coordenadas do usuário
As especificações atuais do SVG permitem representar os elementos
gráficos em duas dimensões. Para especificar as coordenadas do usuário no SVG,
utiliza-se o atributo “viewBox” através da “viewport”. A “viewBox” constitui-se de
quatro números que representam as coordenadas (x, y) mínimo, a largura (width) e o
comprimento (height) do sistema de coordenadas do usuário sobreposto ao
“viewpont”, da seguinte forma:
...
<svg
id="Map"
x="0"
y="0"
width="650"
height="650"
viewBox="735500 -6946200 1200 1800" text-rendering="optimizeSpeed" imagerendering="optimizeSpeed"
shape-rendering="optimizeSpeed"
onmousemove="showCoords(evt);">
...
As coordenadas apresentadas aos usuários são coordenas planas, referentes
ao Fuso 22 do Sistema de Projeção Universal Tranverso de Mercator (UTM). Que as
especificações Simple Features Specification (SFS) do consórcio internacional
Open Geospatial (OGC – Open Geospatial Consortium) definem como Sistema de
Identificação de Sistema da Referência - SRID = “29182” . Ver Fig. 9 as
coordenadas (E, N) destacadas por uma seta.
Fig. 9 - Seta indicando as coordenadas planas (E,N) do Sistema UTM apresentadas
ao usuário.
Fonte: Marisco (2004).
A ação de passar com o ponteiro do mouse sobre a janela principal de
apresentação do mapa dispara um evento que possibilita a mudança das coordenadas
de forma concomitante. Isso é possível através do atributo “onmousemove” do
evento “mousemove” manipulando a função “showCoords(evt)”, em que o
parâmetro “evt” possui as propriedades e os métodos que descrevem o evento
ocorrido.
A função “showCoords(evt)” :
...
function showCoords(evt) {
//to show coordinates
xcoord = xnulcorner + (evt.ClientX - mapOffsetX) * pixSize;
ycoord = (ynulcorner + (evt.ClientY + mapOffsetY) * pixSize) * -1;
textXCoor = svgDoc.getElementById("xcoor").firstChild;
textYCoor = svgDoc.getElementById("ycoor").firstChild;
…
Os métodos ECMAScript “evt.ClientX e evt.ClienteY, retornam as
coordenadas x e y do mouse quando este passa sobre a janela de apresentação do
mapa, apresentando-as através de um objeto texto “textXCoor” e “textYCoor”. Para
que as coordenadas y não sejam apresentadas com valores negativos, devem ser
multiplicadas por -1.
3.2.8 Legenda
Considerando-se que as feições relativas aos lotes, quadras, ruas e
edificações possuem nível de medida (percepção) qualitativo, optou-se em utilizar
variáveis visuais cor e tamanho na implementação da legenda interativa.
A legenda é um dos elementos fundamentais para auxiliar o usuário a
abstrair de forma correta as informações contidas em um mapa. Pode-se projetar
uma legenda totalmente em SVG, que informa ao usuário sobre as diferentes
camadas armazenadas no banco de dados. Além disso, pode-se disponibilizar, de
forma simples, funcionalidades que possibilitem ao usuário alterar as cores, a
espessura dos traços “stroke-width” o preenchimento “fill” das diferentes camadas
armazenadas no banco de dados, facilitando o processo de visualização e interação
com o usuário.
A implementação é totalmente feita em SVG e DOM, em que eventos
“onmouseover”, “onmouseout” e “onclick” disparam ações fornecidas por funções
ECMAScript/JavaScript. A seta na Fig. 10 aponta para as janelas de interação com o
usuário.
Fig. 10 - Seta indicando a legenda e suas janelas de interação com o usuário.
Fonte: Marisco, 2004.
A importância dessas funcionalidades dispostas na legenda encontra-se no
fato de se permitir ao usuário optar pela melhor forma de visualizar as diferentes
camadas do Mapa para Web, procurando, dessa forma, adequar a apresentação à
configuração do monitor de vídeo do cliente. Além do mais, o projetista do Mapa
para Web pode dispor de opções que façam com que a visualização das feições
venha a atender as regras básicas da tradução gráfica disposta por Bertin (1983) e,
posteriormente, estendida por MacEachren (1994).
3.2.9 Escala gráfica
Apresentar uma escala gráfica é de fundamental importância em projetos
de Mapas para Web interativos e dinâmicos, uma vez que elas informam ao usuário
a variação das distâncias medidas no mapa e seu homólogo no terreno,
proporcionando ao usuário a noção correta de distância. Implementar uma escala
que reflita as variações de zoom possibilita o acompanhamento interativo dessa
variação em distância.
Pode-se implementar uma escala gráfica dinâmica que reflete a variação de
distância entre as ações de zoom de aproximação e zoom de afastamento de forma
linear. Essa opção de “zooming” é tratada por Worm (2001, pg. 92) como “zooming”
estático linear. A escala gráfica totalmente implementada em SVG disponibiliza ação
de dinamicidade através da função “SetScaleBar()”, implementada em
ECMAScript/JavaScript. Ver Fig. 11 que apresenta a escala gráfica dinâmica em
SVG destacada por uma seta.
Fig. 11 - Seta indicando a escala gráfica dinâmica em SVG.
Fonte: Marisco, 2004.
O código a seguir implementa a escala gráfica através do elemento 'g' do
SVG. O elemento 'g' é um elemento contêiner para agrupar elementos gráficos
relacionados entre si.
…
<g id="mapScaleBar" transform="translate(250,670)">
<g style="opacity:1">
<text
id="leftNumber"
style="fill:darkcyan;font-weight:normal;
fontfamily:'Verdana';font-size:10;pointer-events:none;text-anchor:middle"
x="20"
y="17">0</text>
<text
id="centerNumber"
style="fill:darkcyan;font-weight:normal;
fontfamily:'Verdana';font-size:10;pointer-events:none;text-anchor:middle"
x="55.43307"
y="17">25</text>
<text
id="rightNumber"
style="fill:darkcyan;font-weight:normal;
fontfamily:'Verdana';font-size:10;pointer-events:none;text-anchor:middle"
x="90.86614"
y="17">50</text>
<rect
id="scalebar1"
x="20"
y="20"
width="35.43307"
height="5"
style="fill:rgb(255,255,255);stroke:rgb(0,0,0);stroke-width:1px" />
<rect
id="scalebar2"
x="20"
y="25"
width="35.43307"
height="5"
style="fill:lightseagreen;stroke:rgb(0,0,0);stroke-width:1px" />
<rect id="scalebar3" x="55.43307" y="20" width="35.43307" height="5"
style="fill:lightseagreen;stroke:rgb(0,0,0);stroke-width:1px" />
<rect id="scalebar4" x="55.43307" y="25" width="35.43307" height="5"
style="fill:rgb(255,255,255);stroke:rgb(0,0,0);stroke-width:1px" />
<text
id="scalebarUnits"
style="fill:darkcyan;font-weight:normal;
fontfamily:'Verdana';font-size:10;pointer-events:none;text-anchor:middle"
x="83.6"
y="44">metros</text>
</g>
</g>
...
3.2.10 Funcionalidades para consultas ao banco de dados
As funcionalidades para consultas ao banco de dados podem ser
implementadas utilizando-se os seguintes objetos de interação: caixas de seleção,
objetos ativos sobre o mapa, campos de textos, campo de dados, dentre outros.
 O campo de dados: possibilita ao usuário digitar textos ou números.
Nesse caso, o usuário digita o código do lote, para estabelecer uma consulta ao lote
de seu interesse, clicando com o botão direito do mouse sobre o botão de “busca”.
Essa consulta disponibiliza na janela principal de visualização do mapa o lote
consultado, permitindo que o usuário obtenha informações sobre o mesmo. Em
seguida, o usuário pode clicar sobre o lote e uma janela “pop up” surgirá,
apresentando os atributos não espaciais do lote armazenados no servidor de banco de
dados PostgreSQL/PostGis. A implementação dessa consulta possui um caráter
restritivo, isto é, somente o usuário que possuir a informação do código do lote
poderá acessá-la. Na Fig. 12 apresenta-se a respectiva função em ação.
Justifica-se a escolha dos objetos campos de dados como interface de
interação para a consulta de lotes ao banco de dados, devido ao fato de que a entrada
dos dados pode ser feita utilizando-se um texto não muito extenso, nesse caso o
código do lote. Na prática, entretanto, esses dados devem ser o Código único de
referência cadastral.
A implementação do campo de dados e do botão de consulta é feita em
SVG. Um script PHP, armazenado do lado do servidor, permite o acesso ao banco de
dados. Nesse script, utilizam-se os operadores “centroid(geometry)” e
“BOX3D(geometry)” Simple Features Specification (SFS/OGC), dispostos no
PostGIS, no intuito de definir o centróide dos lotes e restringir o tamanho da área de
apresentação das diferentes camadas do mapa ao usuário quando bem sucedida a
consulta. Isso reduz significativamente o tempo de apresentação da informação no
navegador.
Fig. 12 - Ação de consulta do lote ao banco de dados. A seta destaca o campo de
consulta.
Fonte: Marisco, 2004.
 Caixa de seleção: a caixa de seleção permite que o usuário selecione os
atributos dos lotes. Esses atributos são apresentados através dos seus símbolos
representados sobre a área. Os símbolos implementados representam, por exemplo
os restaurantes e os hospitais. Esses símbolos foram projetados em SVG por Held
(2003).
A consulta ao banco de dados é viabilizada por um script em PHP. Esse
script utiliza os operadores “POINT” e “distance”, ambos do PostGIS para,
primeiramente, definir um ponto de referência e, em seguida, calcular a distância
desse ponto ao objeto consultado, calculando-se concomitantemente o nível de zoom
a ser disparado para apresentá-lo na janela de visualização principal.
A construção da caixa de seleção contendo os atributos restaurante e
hospital para serem selecionados pelo usuário é viabilizada através de um script
ECMAScript/JavaScript. Através do clicar do botão direito do mouse sobre a caixa
de seleção, dispara-se uma consulta ao banco de dados. A ação de interação é
fornecida pelas funções “function getObjectsFromDb()” e “function insertSimbol()”.
Uma limitação dessa funcionalidade está na inacuracidade da apresentação dos
símbolos no Mapa para Web. A Fig. 13 apresenta a caixa de seleção indicada por
uma seta e o lote com o respectivo símbolo (restaurante).
Fig. 13 - Seta destacando a caixa de seleção dos atributos.
Fonte: Marisco (2004).
4 CONSIDERAÇÕES FINAIS
Todas essas tecnologias apresentadas neste trabalho são de amplo
conhecimento da comunidade acadêmica. Haja vista, que os resultados apresentados
aqui foram obtidos no ano de 2003 (ver Marisco, 2004). Evidentemente que nesse
longo período de tempo muitas coisas mudaram e evoluíram. E é um pouco dessas
mudanças e evoluções que procurar-se-á fazer breves considerações.
Muitos métodos especificos do Plug-in da Adobe o SVG Viwer passam a
não funcionar, já que não fazem parte das especificações SVG W3C. Dentre eles
destaca-se o método “setData” que desaparece e pode ser substituido pelo método
“textContent”. Entretato, muitos métodos e elementos do DOM, foram modificados
e isso demanda maior dedicação no processo de programação das funções,
principalmente aquelas relacionadas à consulta ao Banco de Dados.
Uma das principais alterações que influenciam sistematicamente em todo o
processo aqui discutido é o fato de que o SVG é atualmente apresentado de forma
nativa em todos os navegadores independentemente de suas plataformas
operacionais. Dessa forma, o processo de consulta ao Gerenciador de Banco de
Dados que anteriormente era executado pelos Métodos “getURL” passa a ser
exercito pela especificação “XMLHttpRequest”. Essa especificação lê e estrutura
todo o SVG em um XML para ser interpretado pelos navegadores, através de uma
função ECMAScript. Essa especificação faz parte dos padrões JavaScript API do
W3C para desenvolvimento de aplicativos Web do lado do Cliente, com ótimas
perspectivas para prover Mapas para Web interativos e dinâmicos, principalmente se
considerarmos o API Geolocation que possibilita o fornecimento da localização
atual do usuário através de aplicativos baseados em navegadores.
As especificações OGC, tais como GML, WMS, dentre outras passam a
fazaer parte do processo de construção dos Mapas para Web. Entretanto, não
devemos esquecer que o GML é um XML, portanto, necessita ser interpretado para
ser apresentado. Desta froma, um possível padrão para realizar essa apresentação
seria o SVG.
O SVG para os equipamentos móveis, que estão cada veis mais em
expanção, recebem as especificações SVG Móvel 1.1, que se subdívide em SVG
Tiny (SVGT) 1.1, adequado para dispositivos móveis altamente restritivos, e um
segundo perfil, SVG Básico (SVGB) 1.1, destinado para equipamentos mais
potentes.
Uma das grandes potencialidades que se abre para a disseminação de
Mapas para Web é o padrão HTML 5. Com ele pode-se apresentar o SVG de forma
direta ou através das tags do HTML (img, object, iframe ou usando o SVG image).
REFERÊNCIAS BIBLIOGRÁFICAS
ARLETH M. Problems in screen map design. In: OTTAWA ICA / ACI 1999 .
Proceedings /
Actes, p. 849-857. 1999.
BERTIN, J. Semiology of Graphics: Diagrams, Networks, Maps. Madison,
University of Wisconsin Press, 1983. 411p.
ELZAKKER van, C. P. J. M.. Use of maps on the Web. In: KRAAK, M. J. E
BROWN, A.. Web Cartography – developments and prospects. Editora: Taylor &
Francis, Landon, 2001a. p.21-36.
______. Users of maps on the Web. In: KRAAK, M. J. E BROWN, A.. Web
Cartography – developments and prospects. Editora: Taylor & Francis, Landon,
2001b. p.37-52.
HAYWARD, S.. Computers for animation. Norwinch UK: Page Bros Ltd. 1984.
FERINGA, W.. File formats and plugins. In: KRAAK, M. J. E BROWN, A.. Web
Cartography – developments and prospects. Editora: Taylor & Francis, Landon,
2001a. p.177-193.
______. Design,colour, images, fonts, file size. In: KRAAK, M. J. E BROWN, A..
Web Cartography – developments and prospects. Editora: Taylor & Francis,
Landon, 2001b. p.195-209.
KRAAK, M. J.; BROWN, A.. Web Cartography – developments and prospects.
Editora: Taylor & Francis, Landon, 2001. 213p.
______. Setting and needs for web cartography. In: KRAAK, M. J. e BROWN, A..
Web Cartography – developments and prospects. Editora: Taylor & Francis,
Landon, 2001a, p.01-07.
______. Trends in Cartography. In: KRAAK, M. J. e BROWN, A.. Web
Cartography – developments and prospects. Editora: Taylor & Francis, Landon,
2001b. p.08-19.
KRAAK, M. J.; ORMELING, F. J.. Cartography: visualization of geospatial data.
2.ed., London, Pearson Education, 2003. 205p.
MacEACHREN, A M. How maps work: representation, visualization, and
design. The Guilford Press - New York, 1995. 513p.
MARISCO, N. Web Mapas Interativos como Interfaces aos Dados Geoespaciais:
Uma Abordagem Utilizando-se Tecnologias Fontes Abertas. Florianópolis, SC –
UFSC, 2004. Originalmente apresentada como tese de doutorado. Departamento de
Engenharia Civil – Universidade Federal de Santa Catarina.
PETERSON, M. P.. Interative and animated cartography. Englewood Cliffs,
Nova Jersey – Prentice Hall, 1995. 257 p.
ROBBI, C. Sistema para Visualização de Informações Cartográficas para
Planejamento Urbano. São José dos Campos, SP – INPE, 2000. Originalmente
apresentada como tese de doutorado. Instituto Nacional de Pesquisas Espaciais.
W3C - WORLD WIDE WEB CONSORTIUM, SVG - Scalable Vector Graphics
1.0, W3C Recommendation, .16 de Agosto de 2011. Disponível
em<http://www.w3.org/TR/SVG11/>. Acesso em: 10 junho. 2014.
______. Extensible Markup Language (XML) 1.0. W3C Recommendation, 26 de
novembro de 2008. Disponível em <http://www.w3.org/TR/xml/>. Acesso em: 10
junho 2014.
______. "Cascading Style Sheets". W3C Recommendation, 07 de Novembro de
2003. Disponível em <http://www.w3.org/Style/CSS/>. Acesso em: 10 junho 2014.
______. "HTML5". W3C , W3C Candidate Recommendation 17 December 2012.
Disponível em <http://www.w3.org/TR/2012/CR-html5-20121217/>. Acesso em: 10
junho 2014.
______. "XMLHttpRequest Level 1". W3C ,W3C Working Draft 30 January 2014.
Disponível em <http://www.w3.org/TR/XMLHttpRequest/>. Acesso em: 10 junho
2014.
WORM, J.. Web map design in practice. In: KRAAK, M. J. E BROWN, A.. Web
Cartography – developments and prospects. Editora: Taylor & Francis, Landon,
2001. p.87-107.
Download

GRÁFICOS VETORIAIS ESCALÁVEIS (SVG) PARA DISSEMINAR