Arquivo anual: 2009

PlanetaSIG com extractos de posts com 500 caracteres

Tempo de leitura: 4 min

A pedido de um dos autores, a partir de hoje, o PlanetaSIG tem a capacidade de mostrar apenas os primeiros N caracteres de cada post. A configuração proposta é mostrar 500 caracteres, permitindo aos leitores do agregador decidir se lhe interessa visitar o blog original para ler o post completo.

O agregador tem funcionado inspirado no PlanetGS e como tal mostra numa única página os posts de forma integral, dos blogs que agrega.

Pessoalmente, leio o PlanetaSIG bem como outros planetas e blogs com o Google Desktop, usando a sidebar onde vejo os títulos dos itens a serem refrescados. Ao clicar num item, é aberto directamente o blog original, sem passar pelo PlanetaSIG (ou outro agregador).

Acontece que o PlanetaSIG pode ser consultado directamente, visitando a página. E nesse caso é bem possível que esse visitante já não irá visitar os blogs originais, reduzindo o tráfego desses blogs. E compreendo perfeitamente os autores que querem evitar esta situação (e mesmo que não concordasse agiria da mesma forma – o autor é soberano).

Com esta nova possibilidade espero resolver a questão de forma simpática para todos.

Portanto, quem tem o seu blog agregado no PlanetaSIG e que assim deseje pode enviar-me um email e eu configurarei o seu feed para mostrar apenas um extracto dos posts. O modo default para quem não se manifestar continuará a ser mostrar os posts integrais, mantendo um pouco a mesma lógica dos planetas mais globais como o PlanetGS e o PlanetOSGeo.

Aproveito para pedir sugestões para blogs que possam ser incluídos no PlanetaSIG!!

Detalhes técnicos

O PlanetaSIG é gerado pelo software Venus, escrito em Python. O Venus não permite de raíz configurar o n.º de caracteres a mostrar em cada post, nem permite usar o sumário ou excerpto incluído nos feeds, em vez de mostrar o conteúdo. Já antes tinha tentado configurar o Venus para fazer esse efeito mas sem sucesso.

Mas o Venus tem a capacidade de aplicar filtros a cada feed RSS, e de forma independente. Ou seja, podemos aplicar um filtro a um feed, e outro filtro diferente noutro feed, e até ter outros feeds sem filtro algum.

Um filtro é um pequeno script escrito em Python (também pode ser um xslt), que vai ser executado para cada item dentro de um feed, podendo transformá-lo da maneira como o programador quiser. Por exemplo, podem retirar-se todas as referências a imagens, ou substituir tags <h1> por <h3> ou outro qualquer, aplicar classes css a determinados tags, etc.

O que acabei por fazer foi criar um filtro que pega no <content> de cada post e o substitui por apenas os primeiros N caracteres do original. Este filtro pode ainda substituir o <content> por outro tag qualquer – por exemplo, copiar o sumário para o content. Como o Venus só consegue mostrar o <content>, passa a mostrar o sumário sem saber…

O código do novo filtro foi baseado num filtro que vem já incluído no Venus – excerpt.py. Fica aqui o código para referência futura.

Até breve.

Cria um novo elemento ou substitui um existente,
com o texto de outro elemento, truncado com X caracteres.
Baseado no filtro excerpt.py e alterado por Duarte Carreira em 16/Julho/2009.

Parameters:
  width:  maximum number of characters in the excerpt.  Default: 500
  omit:   whitespace delimited list of html tags to remove.  Default: none
  target: name of element created.  Default: content
  source: name of element to get data from. Default: summary
  replace: yes to delete duplicate target. Default: yes

Example to test:
python tests/reconstitute.py http://localhost/feedorig.xml
--filters "planetaSIG.py?width=500&source=content&target=content&replace=yes">tes
te3.xml

Notes:
* if you want to avoid duplicate entries use replace=yes.
* Venus does not expose summary in the feeds to tmpl templates. With this filter,
   you cant replace the text inside content with the text from summary. This is
   what the default values do.
* if 'img' is in the list of tags to be omitted <img> tags are replaced with
   hypertext links associated with the value of the 'alt' attribute.  If there
   is no alt attribute value, <img> is used instead.  If the parent element
   of the img tag is already an <a> tag, no additional hypertext links are
   added.
"""

import sys, xml.dom.minidom, textwrap
from xml.dom import Node, minidom

atomNS = 'http://www.w3.org/2005/Atom'
planetNS = 'http://planet.intertwingly.net/'

args = dict(zip([name.lstrip('-') for name in sys.argv[1::2]], sys.argv[2::2]))

wrapper = textwrap.TextWrapper(width=int(args.get('width','500')))
omit = args.get('omit', '').split()
target = args.get('target', 'content')
original = args.get('source', 'summary')
replace = args.get('replace','yes')

class copy:
    """ recursively copy a source to a target, up to a given width """

    def __init__(self, dom, source, target):
        self.dom = dom
        self.full = False
        self.text = []
        self.textlen = 0
        self.copyChildren(source, target)

    def copyChildren(self, source, target):
        """ copy child nodes of a source to the target """
        for child in source.childNodes:
            if child.nodeType == Node.ELEMENT_NODE:
                 self.copyElement(child, target)
            elif child.nodeType == Node.TEXT_NODE:
                 self.copyText(child.data, target)
            if self.full: break

    def copyElement(self, source, target):
        """ copy source element to the target """

        # check the omit list
        if source.nodeName in omit:
            if source.nodeName == 'img':
               return self.elideImage(source, target)
            return self.copyChildren(source, target)

        # copy element, attributes, and children
        child = self.dom.createElementNS(source.namespaceURI, source.nodeName)
        target.appendChild(child)
        for i in range(0, source.attributes.length):
            attr = source.attributes.item(i)
            child.setAttributeNS(attr.namespaceURI, attr.name, attr.value)
        self.copyChildren(source, child)

    def elideImage(self, source, target):
        """ copy an elided form of the image element to the target """
        alt = source.getAttribute('alt') or '<img>'
        src = source.getAttribute('src')

        if target.nodeName == 'a' or not src:
            self.copyText(alt, target)
        else:
            child = self.dom.createElement('a')
            child.setAttribute('href', src)
            self.copyText(alt, child)
            target.appendChild(child)

    def copyText(self, source, target):
        """ copy text to the target, until the point where it would wrap """
        if not source.isspace() and source.strip():
            self.text.append(source.strip())
        lines = wrapper.wrap(' '.join(self.text))
        if len(lines) == 1:
            target.appendChild(self.dom.createTextNode(source))
            self.textlen = len(lines[0])
        elif lines:
            excerpt = source[:len(lines[0])-self.textlen] + u' \u2026'
            target.appendChild(dom.createTextNode(excerpt))
            self.full = True

# select summary or content element
dom = minidom.parse(sys.stdin)

#source = dom.getElementsByTagNameNS(atomNS, 'summary')
#if not source:
#    source = dom.getElementsByTagNameNS(atomNS, 'content')
source = dom.getElementsByTagNameNS(atomNS, original)

# if present, recursively copy it to a planet:excerpt element
if source:
    fonteelem = source[0]
    if target.startswith('planet:'):
        dom.documentElement.setAttribute('xmlns:planet', planetNS)
    if target.startswith('atom:'): target = target.split(':',1)[1]
    excerpt = dom.createElementNS(planetNS, target)
    source[0].parentNode.appendChild(excerpt)
    copy(dom, source[0], excerpt)
    #source[0].parentNode.replaceChild(excerpt, source[0])
    #if source[0].nodeName == excerpt.nodeName:
    #  source[0].parentNode.removeChild(source[0])

#apagar o original
if replace == 'yes':
    source = dom.getElementsByTagName(target)
    fonteelem = source[0]
    if len(source)>1:
        source[0].parentNode.removeChild(source[0])

# print out results
print dom.toxml('utf-8')

PostgreSQL e ESRI – Parte 1

Tempo de leitura: 7 min

A atracção do software Open Source é também sentida pelos utilizadores ESRI. Numa discussão na web li uma vez alguém descrever um utilizador de ArcGIS da seguinte maneira: “a única forma de retirar o ArcGIS das mãos de um utilizador é arrancá-lo das suas mãos mortas e frias”… a crer nisto, no lado de aplicações SIG desktop não será fácil substituir o ArcGIS por qualquer outra alternativa.

Será no entanto mais fácil explorar alternativas para os componentes que se encaixam na área dos servidores SIG, ou seja, bases de dados espaciais e servidores webGIS. Um dos produtos Open Source que tem recebido muita atenção na comunidade ESRI é o par PostgreSQL+PostGIS, que recentemente foi incluída na lista de bases de dados suportadas pela ESRI.

A partir da versão 9.3 a ESRI incluiu a possibilidade de utilizar, com toda a sua família de software ArcGIS, a base de dados PostgreSQL e o seu módulo geoespacial PostGIS, ambos Open Source. Esta possibilidade é muito atraente por vários motivos, sendo para mim os mais importantes:

  • PostgreSQL e PostGIS são produtos de grande qualidade, grande difusão, com utilizadores de referência credíveis, existindo uma comunidade muito activa ao seu redor;
  • São Open Source e gratuitos;
  • Oferecem funções de manipulação e análise geográfica de dados vectoriais através de SQL, ombreando com os melhores produtos existentes, open source ou comerciais;
  • Seguem os standards da indústria para SQL espacial (da OGC, e neste momento está em fase de implementar o standard da ISO), o que é obviamente uma abordagem irrepreensível e de enorme importância;
  • Quase a totalidade das aplicações SIG Open Source são compatíveis com esta bd;
  • O facto da ESRI incluir esta base de dados no grupo de sistemas suportados “oficialmente”, oferece uma segurança aos departamentos de TI que pode ser um factor decisivo na adopção ou não do PostgreSQL na empresa (e eu sei que este ponto gera polémica na comunidade de utilizadores e apoiantes, mas é um facto que existe esta barreira).

Porquê mudar?

Uma plataforma SIG muito comum, e aquela com que mais trabalho, é baseada em Oracle e ArcSDE, onde vários utilizadores de ArcGIS visualizam e editam a informação aí residente, havendo também servidores webGIS e aplicações que utilizam a informação residente em Oracle/ArcSDE. Neste artigo vou frequentemente referir esta arquitectura como ponto de comparação.

Quando já existe, trocar de base de dados não é tarefa fácil, consoante o volume e complexidade da informação existente, da dependência das aplicações desenvolvidas, e das novas competências que será necessário adquirir. Mas, há um  momento fulcral na vida de uma base de dados durante o qual vale tudo: a migração de servidor e upgrade de versão!

Nesta situação, a vantagem de migrar para PostgreSQL/PostGIS é passar a contar com um grande conjunto de aplicações SIG Open Source que podem usar a base de dados sem passar pelo ArcSDE – ou seja, podemos usar software não-ESRI e software ESRI para ler e manter a base de dados geográfica, efectivamente criando um sistema híbrido. (NOTA: uso aqui a expressão “SIG Híbrido” no sentido de integrar componentes comerciais e componentes Open Source num sistema de forma a usufruir das vantagens de cada componente, com as dificuldades inerentes, tal como Dan Dale Lutz tão bem explicou aqui.)

Note-se que esta interoperabilidade já é possível em alguma medida, especialmente com Oracle, desde que os dados sejam armazenados em Oracle Spatial ou Locator (sempre incluído em todas as versões Oracle). Só que neste caso existem muito menos aplicações SIG que lêem este tipo de dados, algumas Open Source. Mas em geral, as opções Open Source têm uma compatibilidade pouco fiável e de instalação nem sempre fácil. Por outro lado, tenho encontrado sistematicamente um desempenho muito inferior ao usar ArcGIS com dados Oracle Spatial quando comparado com o modo tradicional do ArcSDE armazenar dados em Oracle (denominado SDEBINARY). Mais sobre estas opções adiante…

Um sistema híbrido porquê?

O cenário de adoptar o PostgreSQL num SIG baseado em ESRI (ou Autodesk) implica que se pode manter todo o restante ecossistema SIG – ferramentas desktop, servidores webGIS, e aplicações desenvolvidas, bem como o nível de produtividade actual da equipa de edição/análise (que tipicamente é atingido após anos de experiência da equipa técnica com estas ferramentas). E ainda se abrem as portas para alargar o ecossistema a ferramentas  Open Source e de outros vendedores.

No caso da ESRI, todo o seu software comunica com o ArcSDE para chegar aos dados, e não directamente com a base de dados. Por isso a troca por outra bd não tem qualquer impacto sobre a restante plataforma SIG. E isto é uma vantagem. Claro que a desvantagem é o preço do ArcSDE…

No caso em que o ArcSDE já existe, podemos alegremente ignorar este custo (embora o custo de manutenção anual continue a existir)!! Em situações onde não exista ArcSDE deve-se incluir o seu custo de aquisição na análise das alternativas disponíveis.

A vantagem do SQL espacial

Um dos grandes trunfos de usar uma bd que, como o PostgreSQL+PostGIS, oferece funções de manipulação e análise espacial por SQL é podermos usar comandos na própria bd que vão efectuar as análises que estamos habituados a fazer apenas com as nossas ferramentas SIG desktop favoritas.  (Aliás, para ser exacto, o ArcSDE desde a v9.3 adiciona sempre o seu próprio dialecto de SQL espacial à bd onde é instalado, que pode ser usado como alternativa ao SQL nativo da bd. Isto também se aplica ao PostgreSQL. O administrador da bd é que decide se usa o dialecto da ESRI ou o dialecto nativo da bd.)

Por exemplo, com SQL espacial é possível seleccionar as classes de solo intersectadas pelo novo traçado do IP2, recorrendo apenas ao PostgreSQL, e sem usar ArcView. E como a máquina onde se instalam bases de dados é tipicamente muito mais potente que o nosso posto de trabalho, a velocidade de processamento destas análises será também superior. Já para não falar de evitar a transmissão de dados na rede entre a bd e o posto de trabalho. Apenas os resultados são transmitidos à aplicação SIG para visualização.

Então porque é que não estamos todos a usar SQL espacial para fazer análise geográfica?

Porque ainda é preciso que o utilizador saiba escrever estes comandos SQL! E isto não é uma tarefa trivial. Notem que escrevi “ainda é preciso saber…” sendo a palavra chave “ainda“. Isto porque hoje todas as bases de dados comerciais têm suporte a SQL espacial – Oracle, SQL Server, DB2, Informix – umas há mais tempo que outras, umas com SQL mais padronizado que outras, mas a funcionalidade está lá. O que falta são as aplicações que sabem executar essa análise nessas bd’s, facilitando a vida ao utilizador com botões e menus amigáveis, e dispensando assim o conhecimento de SQL espacial!

Por exemplo, quando o ArcView calcula um buffer não utiliza as capacidades da bd de cálculo de buffers, mesmo que elas existam. Apenas lê os dados armazenados na bd, e usa o nosso posto de trabalho para fazer o cálculo. E a esmagadora maioria das aplicações SIG actuais fazem o mesmo, quer comerciais quer Open Source.

Mas parece-me inevitável que ao longo dos próximos anos assistamos à mudança deste paradigma. Até porque desde que a Microsoft incluiu SQL espacial no SQL Server 2008 há toda uma nova geração de programadores que “acordou” para as capacidades do SQL espacial.

Quando uma aplicação SIG com peso no mercado conseguir fazer uma análise 10x mais rapidamente que os seus concorrentes (porque recorre às capacidades do servidor de base de dados) o que acham que vai acontecer?

Opções para utilizadores ESRI

Então que opções existem para os utilizadores ESRI que querem utilizar PostgreSQL+PostGIS?

ArcSDE

A opção standard do ponto de vista da ESRI é, claro, instalar o ArcSDE. Na versão 9.3 existe um setup de instalação que até instala o PostgreSQL e o PostGIS de uma forma muito automatizada. Pode-se encontrar alguns tutoriais de instalação, como este do Adriano Hantequeste: ArcSDE [Passo 1] Instalando o PostgreSQL. Há que ter atenção, no entanto, aos passos opcionais de instalar o PostGIS manualmente, para podermos no fim optar pelas suas capacidades nativas. (No manual de instalação do ArcSDE está tudo bem explicado.)

Mas há mais para além da instalação do ArcSDE. Podemos configurar a forma como o ArcSDE armazena os dados vectoriais no PostGIS. Existem 2 opções:

  • formato proprietário ESRI (ST_GEOMETRY)
  • formato nativo PostGIS (PG_GEOMETRY)

Estas opções definem o formato como as geometrias dos nossos vectores são armazenados na bd. Para o utilizador de ArcGIS é invisível se optamos por uma ou outra, mas há consequências importantes.

O formato ESRI guarda as geometrias no PostgreSQL de forma a que apenas se podem ler ou alterar usando software compatível (leia-se ESRI). Ou seja, o Quantum GIS para ler estes dados terá de usar um plugin ArcSDE (para ser exacto, o plugin é instalado no OGR que por sua vez é usado através do QGIS).

Por sua vez, o formato PostGIS guarda as geometrias usando as capacidades do PostGIS, e isso significa que todo o software compatível com PostGIS as pode ler e alterar. Ou seja, podemos carregar dados na bd usando o ArcCatalog (que passa pelo ArcSDE), e depois usar o QGIS para ler esses dados, sem passar pelo ArcSDE e sem plugins. Confuso? Espero que não… em última análise, esta opção permite ter na empresa aplicações gratuitas como o QGIS a usufruirem da bd central, a fazer impressões, análises, confrontações, etc. sem duplicação de dados ou conversões desconfortáveis.

Como se configura esta opção do formato de armazenamento das geometrias?

Sem querer entrar em grandes detalhes, pode-se dizer que é muito simples. Basta executar um comando que altera uma linha na tabela de configuração do ArcSDE. O comando é o seguinte:

sdedbtune -o alter -i 5151 -k DEFAULTS -P GEOMETRY_STORAGE -v “PG_GEOMETRY” -s <server_name> -D postgis -u sde -p <ArcSDE_admin_password>

Esta opção tem outras configurações e particularidades que terão de ficar para outra oportunidade.

zigGis

zigGIS é uma extensão para ArcGIS que permite ler e escrever em PostGIS, sem usar ArcSDE. É um produto que começou como Open Source, e que evoluiu para uma solução comercial. Embora a fonte do programa esteja disponível, é exigida a compra de licenças na maioria das situações (excepto para uso pessoal e académico que continuam isentos de pagamento – ver licença aqui).

Ora o preço é de apenas US $279! por posto de trabalho. É naturalmente muito apetecível. O cenário em vista é conseguir um SIG, com base de dados geográficos e aplicação desktop de topo, apenas pelo preço de ArcView + $279.  Será que há algum truque, uma armadilha? Parece que não, a ver pelo excelente exemplo da implementação na Câmara Municipal de Albufeira, é uma opção extremamente flexível.

O papel do ArcSDE

Claro que surge a questão óbvia: então para que serve o ArcSDE? Bom, esta questão é debatida há muitos anos, bem antes de existir o zigGIS, e posso apenas manifestar a minha opinião – o ArcSDE é o pivot de dados que serve toda a plataforma ArcGIS – desde o modelo de dados, ao servidor webGIS, às aplicações desktop. Sem o ArcSDE, as várias peças do ArcGIS “descolam”, e temos de recorrer a ficheiros para partilhar informação entre as componentes do sistema. Por outro lado, o ArcSDE permite à ESRI implementar funções para além dos standards. Em geral, os standards na área SIG e SQL são desenvolvidos mais lentamente que as aplicações desenvolvidas pelos maiores fabricantes. Por exemplo, antes de existir WMS já existiam servidores webGIS. Antes de existir standard de SQL espacial, já existiam bases de dados geográficos. Com o ArcSDE a ESRI implementa um modelo de dados com funcionalidade que não está padronizada pela indústria: rasters, terrains (para LIDAR), topologia com regras de validação automática, gestão de versões, gestão de histórico, bd’s distribuídas, sincronização de bd’s… bom, não é o meu papel “defender” o ArcSDE, mas encontro valor acrescentado no produto. Para os casos que não necessitam desta integração ou destas funções, fará menos sentido a sua aquisição. Para os outros casos…

Conclusão

Já vai longo este artigo… contra todas as regras de bom comportamento em blogs 🙂

Nos próximos tempos penso continuar este tema com mais alguns artigos, olhando com mais detalhe para a combinação PostgreSQL+PostGIS<->ArcSDE<->ArcGIS.

Para já, é certo que podemos contar com a possibilidade de criar sistemas híbridos com software ESRI e componentes Open Source, usando o melhor dos 2 mundos. E isso é um passo de gigante  que demorou décadas a chegar ao ArcGIS, mas finalmente aí está.

Novo MDT global de 30m disponível

Tempo de leitura: 2 min

Há uns anos criei um mdt único de 90 m de resolução para a Península Ibérica, que uso desde então em mapas regionais. Este mdt foi criado a partir da SRTM, missão efectuada em 2000 pelo Space Shuttle Endeavour.

Agora, desde ontem 29 de Junho de 2009, foi disponibilizado um novo mdt global de 30m de resolução, criado a partir do satélite ASTER, numa colaboração entre a NASA e o governo japonês. O mdt foi criado a partir de 1,5 milhões de imagens ASTER, recorrendo à sua correlação estereográfica. Os detalhes podem ser consultados aqui: METI and NASA Release ASTER Global DEM.

Há vários locais para obter os dados. Um que experimentei é este: ASTER GDEM search system. É um sistema interactivo em que podemos seleccionar a área de interesse desenhando um polígono. Obtemos uma listagem das quadrículas que nos interessam e fazemos a sua descarga. (por alguma razão o download não correu bem…)

É-nos pedido o registo de utilizador, e que indiquemos o fim a que se destina a informação. Supostamente, obtemos uma licença de utilização limitada a esse fim… este tipo de permissão amputada  agasta-me… mais ainda numa informação distribuída gratuitamente. Têm receio que faça o quê com os dados? Enfim…

Depois de obtermos as quadrículas, o melhor será construir um mosaico num único ficheiro, e reprojectar para o sistema de coordenadas  que mais usamos – não confirmei mas julgo que o original está em WGS84. O formato também não consegui ainda confirmar, mas em tempos o ASTER produzia ficheiros no formato HDF-EOS, que é um formato algo complicado e pouco comum. Nessa altura, havia alguns programas para a conversão, incluindo os excelentes MicroDEM e 3DEM.

Ou seja, precisamos de um voluntário que obtenha os vários tiles do mdt, os junte num mosaico, e reprojecte num sistema de coordenadas comum em Portugal. E depois, se não for pedir muito, que o disponibilize à comunidade!! Alguém se apresenta?

Balanço Open Source para SIG

Tempo de leitura: 3 min

Já há algum tempo que tenho planeado escrever sobre a integração entre Postgresql e ArcSDE, agora que a ESRI suporta esta combinação. Mas ao começar esse artigo dei por mim a reflectir sobre a utilização que faço de ambos os mundos – open e closed source…

Sou utilizador de software ESRI há muitos anos, e sou também utilizador de software Open Source em tempo igual. Curiosamente.

Sucede que comecei a trabalhar em SIG num projecto de investigação na universidade (no Instituto Superior de Agronomia, “antigo” Dept. de Eng.ª Rural), e em simultâneo iniciei o mestrado. No projecto de investigação trabalhei com Linux, aprendendo as bases deste SO que ainda hoje me servem – na altura não havia sistemas de distribuição de pacotes de software já pré-configurados… por exemplo, o sistema de email que usava tive que o compilar… outros tempos (sou tão velho “informaticamente” que a minha mulher quer oferecer-me pelo aniversário uma tshirt do ZX Spectrum). Para a tese de mestrado usei ArcInfo numa estação de trabalho IBM com o SO AIX, uma variante de Unix desenvolvido por este fabricante. Desde aí mantive o gosto por Open Source, e continuei utilizador ESRI.

Para um utilizador ESRI, a integração com software Open Source é uma questão muito pertinente, por vários motivos – anoto aqui apenas alguns. Afinal, e não o escondo, o ArcGIS é o meu software SIG favorito, mas não faz tudo o que preciso, e nem tudo o que faz é feito da melhor forma. Nada melhor do que complementá-lo com pérolas de software gratuito. Por outro lado, existem tarefas para as quais prefiro utilizar um programa mais ligeiro, como o QGIS. E claro, para tarefas relacionadas com outro software Open Source também não é o mais indicado. Por exemplo, exportar um ficheiro .map para o MapServer a partir de um mapa devidamente simbolizado. Também a interoperabilidade e capacidade de interagir com os diversos standards OGC são limitadas no ArcGIS em alguns aspectos. Por exemplo, criar ficheiros SLD (de simbologia) para uso no GeoServer. Mas para os críticos do ArcGIS não se ficarem a rir, não conheço nenhum outro programa que crie ficheiros KML tão facilmente e com tanta funcionalidade como o ArcGIS. E o KML também é um standard OGC…

A situação com o Software Aberto na área SIG (SASIG) teve uma evolução explosiva nos últimos anos. Na minha opinião, devido em grande parte à publicidade positiva que a área recebeu da Google e a Microsoft. E hoje o panorama de software no lado do servidor e no lado do desktop é extraordinário. O software Open Source não serve só como complemento, e terá todo o mérito e capacidade em ser utilizado como peça central de um SIG. Tudo depende dos objectivos, necessidades, e processos de trabalhos escolhidos.

No servidor, temos 3 players fenomenais: MapServer, GeoServer (web), e Postgresql+PostGIS (bd).

No desktop, podemos também escolher facilmente 3 campeões da causa: gvSIG, Kosmo, e Quantum GIS – embora existam muitos mais.

Na categoria de ferramentas para conversão de dados, que tanto são usadas no lado servidor como no lado desktop, temos o incontestável par GDAL/OGR para raster e vector. Outras iniciativas mais recentes que poderão ser interessantes são o FeatureServer, o Spatial Data Integrator e o GeoKettle (ambos semelhantes ao FME).

Para o desenvolvimento de aplicações web também temos óptimos produtos: OpenLayers, pmapper, MapFish, e vários outros.

Já para desenvolver aplicações desktop o cenário é muito diferente, e não será uma tarefa fácil tentar criar uma aplicação SIG baseada em componentes Open Source. Pessoalmente, a minha opção seria sempre pela facilidade de utilização, e assim optaria pelo objecto ActiveX do MapWindow GIS, ou o extraordinário SharpMap para .NET (cujo desenvolvimento tem sido extremamente lento, para grande desencanto da comunidade… o jovem Morten foi contratado pela… (suspense)… ESRI!). Estas seriam as opções mais simpáticas, com menor exigência técnica e de tempo para criar uma aplicação SIG desktop adaptada a um objectivo específico.

Para adeptos Java existem também várias opções, embora mais complexas. As opções mais proeminentes serão a GeoTools (sem mecanismo de visualização?), GISToolkit (última versão de 2003), e OpenMap (apenas visualização). O mundo Java é para mim mais desconhecido, e agradeço contribuições de quem tenha mais prática com esta tecnologia para esclarecer a situação actual face a componentes SIG.

A área continua a evoluir e é difícil manter uma noção actualizada do que vai acontecendo nos vários domínios. Têm vindo a ser publicados artigos com o diagnóstico da “situação actual”:

Faltará talvez uma página web fixa onde se possam actualizar os vários produtos, talvez num wiki? Para nós lusófonos, seria excelente manter uma página destas no wiki do OSGeo PT. Há voluntários???

Serviços SIG no AutoCAD

Tempo de leitura: 4 min

Olá a todos. Desde o meu último post passou mais tempo do que gostaria… mas hoje consegui “empurrar” este post.

A questão que trago aqui hoje é uma forma de integrar um SIG baseado em software ESRI com software Autodesk. Ou seja, se a sua organização usa ArcGIS Server então saiba que pode fazer chegar toda a sua informação SIG aos utilizadores de AutoCAD/Map/Civil, e tudo sem conversões ou múltiplos ficheiros. Melhor, pode visualizar toda a informação publicada pela ESRI no site ArcGIS Online no AutoCAD, e isso inclui os ortofotomapas do IGP, de 2004 e com 1 m de resolução.

A solução é o plugin da ESRI “ArcGIS for AutoCAD”, para AutoCAD (como o nome indica). É um download gratuito que está no site da ESRI. Depois de instalado vai acrescentar um menu e uma ribbon ao AutoCAD chamados “ArcGIS” e que permitem definir ligações a serviços ArcGIS Server, localizados na Intranet ou na Internet, o que abre uma grande via de comunicação entre o mundo SIG e o mundo CAD. Este plugin oferece ainda uma nova forma de produzir informação CAD (no AutoCAD) com atributos denominada “Mapping Specification for Drawings” e que, de acordo com a ESRI Inc., é mais interoperável – não obriga a conversões complexas, evita perda de informação quer no lado SIG quer no lado CAD, e é baseado apenas em ficheiros DWG “normais”. Pode obter mais informação aqui: Mapping Specification for Drawings. Ainda não tive a oportunidade de investigar em detalhe esta nova opção… mas este video da ESRI ilustra o processo.

Mas regressemos ao tópico principal – como ver no AutoCAD informação publicada através do ArcGIS Server?

Instalação do ArcGIS for AutoCAD

A instalação segue o processo normal: depois de fazer o download, basta executar o ficheiro obtido. Nos casos que observei, os novos elementos na interface do AutoCAD não foram correctamente adicionados, pelo que foi necessário fazê-lo manualmente. Para isso bastou executar o comando “cuiload” (dentro do AutoCAD) e na janela que abre indicar o ficheiro “C:\Program Files\ArcGIS for AutoCAD\ afaUI.cui” (ou equivalente de acordo com a pasta de instalação).

A partir daqui, o menu e a ribbon ArcGIS ficarão visíveis.

Adicionar um serviço

Para adicionar um serviço ArcGIS, basta usar o botão “Add Map”, e preencher os dados do endereço do servidor, e nome do serviço pretendido. Na imagem seguinte é mostrada a ligação a um servidor interno na EDIA com um serviço que mostra as infra-estruturas do EFMA, usando dados ArcSDE e simbologia ArcMAP:

image

E o resultado depois de aproximar a uma área com dados é (desculpem a qualidade da imagem):

image

Podem ser usados serviços dinâmicos e de cache (em que as imagens são previamente geradas para uma quadrícula e para um conjunto de escalas pré-definidos). Os serviços de cache permitem uma velocidade de interacção muito maior, com a contra-partida de existir alguma desactualização dos dados.

Adicionar o serviço ArcGIS Online com os ortos do IGP

O processo para adicionar os ortos ao AutoCAD é o mesmo, mas agora indicando o endereço do servidor da ESRI: http://services.arcgisonline.com/arcgis/services.

No momento em que fiz este artigo, o AutoCAD não reconheceu o proxy da empresa (que exige autenticação), pelo que não pude capturar imagens… não foi possível determinar se o problema é do AutoCAD ou se é do plugin.

Identificar vectores num serviço ArcGIS Server

O plugin também inclui uma ferramenta de “Identify” que permite consultar os atributos da informação publicada. Por exemplo, identificar um canal no serviço da EDIA daria o seguinte resultado:

image

Conclusões

Esta ferramenta é realmente um passo em frente na interligação SIG-CAD, ou melhor, ESRI-Autodesk. Embora o AutoCAD Map e Civil tenham a capacidade de ligação a serviços WMS, a verdade é que a minha experiência com essa funcionalidade não tem sido a melhor (muitas vezes o mapa não redesenha o serviço WMS, e a impressão não refresca a imagem para ajustar ao tamanho do layout). Por outro lado, a ligação a serviços ESRI em cache é agora possível, o que traz as 2 grandes vantagens destes serviços: 1) são muito mais rápidos; e 2) exigem muito menos esforço por parte do servidor SIG, o que permite servir mais utilizadores com o mesmo servidor.

Neste momento, este plugin está em utilização na EDIA principalmente para visualizar, em AutoCAD, os mosaicos de ortofotomapas residentes em ArcSDE, algo que nunca tinha sido conseguido de forma funcional. E conseguimos mesmo chegar aos utilizadores da versão base do AutoCAD (sem Map nem Civil), que foram também sempre os mais excluídos do SIG. Optou-se por publicar os ortos através de serviços em cache, o que resultou numa óptima performance e numa experiência impressionante para os utilizadores.

No entanto, algumas questões têm suscitado dúvidas e dificuldades: a qualidade das imagens que surgem no AutoCAD têm pouca qualidade quando se utilizam serviços em Cache (principalmente vectores; com ortos não é tão aparente), e não foi ainda possível definir a transformação entre data diferentes (isto é, sobrepor dados WGS84 e Datum73). Também as labels aparecem no AutoCAD mais pequenas do que o esperado, o que obriga a alterar os mxd’s e criar novos serviços no ArcGIS Server especificamente para utilizar em AutoCAD.

Por outro lado, a possibilidade de definir níveis SIG num DWG que depois surgem no ArcMap como Feature Classes, sem necessidade de conversão, é muito apelativa… mais ainda se pensarmos que se podem preparar DWGs vazios com as especificações pretendidas e entregá-los a fornecedores de serviços, projectistas e arquitectos. Estes podem criar a sua informação usando AutoCAD com estes DWGs, trabalhando assim já de acordo com as especificações SIG dos clientes, e sem necessidade de adquirir novo software – bastará usar o plugin gratuito. Mas este é já outro desafio totalmente diferente…

Criar KML de Pontos no ArcGIS

Tempo de leitura: 6 min

Um amigo que também anda nestas lides geoespaciais, pediu-me ajuda para perceber a melhor forma de passar um shapefile de pontos para KML, de preferência de forma a que os pontos tivessem “balões” de informação e com símbolos minimamente aceitáveis.

O shapefile contém pontos com alguns atributos em português, como Nome, Categoria, e outros. O aspecto inicial no ArcMap é este:

image

E o objectivo é chegarmos ao Google Earth com este aspecto:

image

Filtrar os dados

Como apenas alguns pontos interessam passar ao KML, vamos definir uma expressão de pesquisa. Nas propriedades do layer, no separador “Definition Query” construimos a query. Neste exemplo, queremos apenas os pontos cuja Categoria é igual a “Hotelaria”.

image

Ficamos assim com menos pontos a converter. É claro que este passo é opcional…

image

Sistema de Coordenadas

Os dados num ficheiro KML devem estar no sistema de coordenadas WGS84, indicando as coordenadas em graus de latitude e longitude.

Em vez de projectar o nosso shapefile, vamos em vez disso configurar a Data Frame para usar o sistema de coordenadas WGS84. O ArcMap permite definir também a transformação de Datum, e com isso ao exportar dados podemos optar por usar o sistema de coordenadas original ou usar o que está activo na Data Frame. Esta abordagem tem a vantagem de reduzir o n.º de ficheiros intermédios que criamos em disco.

Assim, para definir o sistema de coordenadas, basta abrir as propriedades da Data Frame (botão direito em “Layers” na árvore de temas, e clicar na opção “Properties“), e abrir o separador “Coordinate System”.

Aqui, selecionar na parte inferior da janela a opção Predefined -> Geographic Coordinate Systems -> World -> WGS 84.

Temos ainda de selecionar a transformação de datum que queremos usar. Na parte superior da mesma janela, clicamos no botão “Transformations“, e na janela que abre selecionamos na última opção em baixo, a transformação “Datum_73_To_WGS_1984_4“. Esta transformação usa os parâmetros de nível nacional publicados pelo IGP.

image

O resultado desta definição é obtermos um mapa já em coordenadas WGS84, que podemos ver no ArcMap na barra inferior onde são mostradas as coordenadas do cursor.

image

Usar simbologia apropriada

Uma das coisas a que a Google nos habituou foi a vermos uma simbologia mais imaginativa, usando icones grandes e coloridos para representar pontos.

Em geral, os técnicos de SIG não usam este tipo de simbologia, mas o ArcMap inclui um conjunto de símbolos deste género que poderemos usar. Basta ligar o estilo “ArcGIS_Explorer” para vermos as opções disponíveis. Para vermos estes símbolos basta clicar no botão “More Symbols” no editor de simbologia dos pontos:

image

E assim podemos escolher um símbolo mais ajustado à utilização em Google Earth. O ArcGIS ao converter o layer para KML vai criar um pequeno ficheiro png que incluirá no nosso KML, e que será usado pelo Google Earth.

Para exemplificar escolhi o simbolo de uma cama de hotel e o aspecto do mapa ficou assim:

image image

Incluir atributos

O KML é uma linguagem muito flexível, permitindo associar informação descritiva aos elementos vectoriais. O ArcGIS facilita o processo de passar atributos para o KML, automatizando o processo. Claro que o processo automático tem limitações, mas para quem não quer ou não sabe editar KML manualmente, este automatismo é muito útil, e pode dar bons resultados.

Vários elementos passam do ArcMap para o KML automaticamente:

  1. O nome do layer passa como nome da pasta que contém os pontos
  2. A descrição do layer no ArcMap (nas propriedades, separador “General“), passa para o “Snippet” que descreve o layer no Google Earth
  3. As Labels do ArcMap são usadas para dar um nome a cada vector no Google Earth, e a própria label vai surgir na imagem no Google Earth
  4. Se no ArcMap definirmos as propriedades de “HTML Popup“, o Google Earth vai mostrar essa informação quando clicarmos sobre um ponto
  5. Se houver uma legenda no Layout do ArcMap, será passada ao KML e mostrada no Google Earth como uma imagem sobreposta à imagem do terreno (“screen overlay“), podendo no processo de exportação escolher o canto no ecrã onde surgirá

A ferramenta HTML Popup é uma variante da ferramenta de Identify, mas que mostra os atributos do vector clicado numa janela HTML que podemos configurar. Na sua forma pré-definida os campos são mostrados de acordo com as definições do separador “Fields“. Por exemplo, podemos esconder campos, e alterar a “Caption” para mostrar nomes de campos em português ou mais perceptíveis para o utilizador.

Portanto, para começar temos de definir as propriedades do HTML Popup do nosso layer de pontos no ArcMap. Para isso, nas propriedades do layer, separador “HTML Popup“, basta ligar a opção de usar a ferramenta de HTML Popup, e ao clicar no botão Verify podemos ver como ficará a janela de popup.

image

Podemos ainda melhorar o aspecto da janela se mudarmos as “Captions” dos campos e escondermos os campos que não nos interessa mostrar (usando o separador “Fields“). O aspecto final ficaria assim:

image

Rótulos ou Labels

Se definirmos labels no nosso layer de pontos, estes textos serão usados como o nome de cada ponto no KML final, e serão também visíveis no mapa junto a cada ponto. Portanto será uma questão de se querer ou não ligar as labels do layer e escolher o campo, a fonte, tamanho, cor, efeitos, etc. Mais importante será definir a escala a partir da qual os textos são mostrados, e que será respeitada pelo Google Earth. Se tiver muitos pontos aglutinados esta opção é praticamente obrigatória.

Executar a ferramenta “Layer To KML

Esta ferramenta encontra-se na Toolbox de Conversão, toolset “To KML“:

image

Uma vez que queremos exportar a nossa informação como pontos e não como uma imagem, a questão mais importante nesta ferramenta é *não* ligar a opção de “Return single composite image“. Na caixa de “Output File” temos de indicar o caminho para o ficheiro a criar que deve ter obrigatoriamente a extensão KMZ (o ArcMap irá criar uma pequena imagem .png para mostrar o nosso símbolo no Google Earth que será incluída no ficheiro KMZ). Por fim, é obrigatório indicar a escala máxima de visualização. Ou seja, só a partir desta escala é que a informação será mostrada pelo Google Earth.

Resultado Final

E é tudo. Basta agora que no Google Earth usemos a opção File->Open para abrir o nosso ficheiro KMZ e ver o resultado final.

image

Existem ainda alguns melhoramentos que poderemos fazer: alterar o nome do layer no ArcMap irá alterar o nome do layer no Google Earth. Podemos também criar um ficheiro xsl para criar uma visualização alternativa com melhor estilo e até incluir imagens nas nossas janelas de popup (O ArcGIS inclui alguns exemplos na «directoria de instalação\ArcGIS\Styles» que podemos usar como base).

Existem muitas ferramentas de criação de KML a partir do ArcGIS que começaram a aparecer já há alguns anos, quando o ArcGIS não oferecia qualquer possibilidade de conversão. Com o tempo, a ESRI foi incluindo mais capacidades de conversão. Hoje, já na versão 9.3, fiquei impressionado com as capacidades nativas do ArcGIS – conseguimos obter um KML já com alguma sofisticação, e usando um processo de conversão bastante simples recorrendo a ferramentas e definições familiares a qualquer utilizador de ArcGIS.

Ortofotomapas do IGP no ArcGIS Online

Tempo de leitura: 2 min

Como é natural, durante o EUE09 foram feitos alguns anúncios sobre as próximas versões do ArcGIS e sobre a direcção que os produtos irão seguir no futuro próximo(2009-2010).

Um dos pontos frisados pela Linda Hecht, Directora de Marketing da ESRI Inc., e depois pelo Sandro Batista, Director de IDI na ESRI Portugal, foi o serviço ArcGIS Online, onde têm vindo a ser publicados alguns recursos para utilizar em ArcMap, ArcGlobe, e em aplicações ArcGIS Server. Estes recursos são projectos .mxd ou temas em formato .lyr que se podem acrescentar aos nossos próprios mapas, e que fazem ligação a dados remotos residentes nos servidores da ESRI.
A intenção da ESRI é fazer evoluir este serviço para uma plataforma mais colaborativa, integrando o site com ferramentas do próprio ArcGIS. Será interessante ver como o conjunto irá funcionar e até que ponto os utilizadores serão receptivos a esta abordagem.

Mas foi feito um outro anúncio pelo Sandro, relativo ao ArcGIS Online e que para mim caiu como uma bomba, mas no bom sentido! Os ortofotomapas do IGP, do ano 2004, e com resolução de 1m, estão publicados no ArcGIS Online na forma de .mxd e .lyr para o ArcGIS, e na forma de serviços REST para integração nas aplicações ArcGIS Server.

Ou seja, os utilizadores de ArcGIS podem abrir uma nova sessão de ArcMap e adicionar um tema com ortofotomapas para todo o País e sem custos. E isto é realmente algo significativo para todo o sector SIG e até para o sector da informação cartográfica… deixo a cada um o exercício de reflexão sobre o impacto desta iniciativa. (Estes são os mesmos ortofotomapas que foram disponibilizados via Virtual Earth.)

Na minha perspectiva, peca apenas por ser limitada aos utilizadores ESRI. Mas disponibilizar a mesma informação de forma mais abrangente caberá naturalmente ao IGP e não à ESRI, que neste momento oferece aos seus utilizadores um brinde fantástico. Aliás, se alguém da ESRI estiver a ler isto pode ser que coloquem um link logo na página principal do vosso site para informar todos os seus utilizadores desta oferta. Para se fazer justiça, obviamente que o IGP está de parabéns porque é o detentor dos dados.

Portanto, para usufruirem desta prenda de Natal atrasada, basta irem ao site arcgisonline.esri.com, e seguirem os links “Free maps” e “World User Imagery”. Nesta página podem ver os metadados da informação, bem como vários links para utilização nos produtos ArcGIS, incluindo um link de um .mxd e outro de um ficheiro .lyr.

Se gravarem o ficheiro .lyr numa partilha em rede, todos os utilizadores de ArcGIS na vossa organização poderão adicionar os ortofotomapas aos seus projectos.

Cuidado no entanto com o sistema de coordenadas, que é WGS 84. Para que os ortos se alinhem com a vossa informação é necessário definir o sistema de coordenadas da Data Frame e também a transformação de datum que querem usar. Por exemplo, se os vossos dados seguirem o sistema Hayford-Gauss, datum 73 (vulgo IGP), então definam o sistema da Data Frame para “Datum 73 Hayford Gauss IPCC”, e nas Transformações escolham transformar de WGS 84 para Datum 73, usando a transformação #4 que corresponde aos parâmetros publicados pelo IGP. Claro que o melhor será seguir as excelentes instruções do Prof. José Alberto Gonçalves que permitem reduzir os erros de conversão para uns míseros centímetros!

Visualizar CAD online

Tempo de leitura: 6 min

A visualização de informação CAD via web, por si só ou em conjunto com outra informação georreferenciada, é importante para as áreas de Engenharia, como sejam as de Projecto, Empreitada, Exploração e Manutenção de infra-estruturas. Nestas áreas a informação CAD é rainha – qualquer menção de outros formatos ou, perdendo completamente a cabeça, referir SIG é garantir o epiteto de “o tipinho dos Mapas”… Mas fora de brincadeiras, o valor da informação CAD em Engenharia é obviamente indiscutível, e as ferramentas CAD e SIG são naturalmente complementares, e talvez até sequenciais em muitos fluxos de trabalhos. Mas isso seria material de outros artigos…

O objecto deste artigo é apresentar 2 metodologias para visualizar ficheiros CAD num browser, e como veremos, isto pode ser feito actualmente com e sem downloads de software.

Os ficheiros DWG não dados a visualizações rápidas. Até hoje não vi ainda uma aplicação que rapidamente mostre o conteúdo de um DWG. Se usarmos software Autodesk os recursos do computador que são ocupados apenas para abrir um pequeno DWG são impressionantes, mas as coisas têm vindo a melhorar ultimamente. O visualizador que mais me agradou até hoje é o eDrawings: uma aplicação gratuita, rápida, e eficaz. Surpreendentemente, o próprio MapGuide não publica ficheiros DWG, a não ser que se convertam primeiro para DWF. (se alguém souber o contrário, por favor diga-me!)

Em relação ao problema de visualizar na web ficheiros DWG, foram encontradas 2 soluções, e passam ambas por os converter para DWF. Só depois poderemos usar um controle ActiveX para o Internet Explorer (ou mais recentemente um plugin para Firefox 3.x) para visualizar estes ficheiros, ou recorrer ao serviço gratuito da Autodesk chamado Freewheel. Mas vejamos cada solução em detalhe.

Solução 1 – Controle ActiveX para IE ou plugin Firefox 3.x

Ao instalar software da Autodesk é também instalado um controle ActiveX que lê ficheiros DWF e  faz muitas outras coisas, sendo um autêntico mini-programa de CAD. Este controle era incluído no DWF Viewer, um produto gratuito que entretanto foi substituído pelo Design Review. De qualquer forma, muitos dos programas da Autodesk, como o AutoCAD, TrueView, ou o Design Review, instalam também este controle, e por isso muitos dos utilizadores terão já o controle no seu PC, mesmo sem saberem.

Este controle permite incluir este mini-visualizador CAD em aplicações Windows, como o IE, Word, PowerPoint, etc., e isso é muito útil para o nosso objectivo.

Para abrir um ficheiro DWF no IE, basta incluir numa página web o seguinte código HTML:

<OBJECT CLASSID="clsid:A662DA7E-CCB7-4743-B71A-D817F6D575DF"
CODEBASE=http://www.autodesk.com/global/dwfviewer/installer/
DwfViewerSetup.cab#version=7,0,0,928
WIDTH="640" HEIGHT="480">
<PARAM NAME="Src"
VALUE="http://www.autodesk.com/global/dwf/samples/multiple_layouts_large.dwf">
</OBJECT>

O resultado é excelente. A imagem seguinte mostra o resultado…

dwfviewer_1

Caso o PC não tenha ainda o controle instalado, o browser inicia o processo de download e instalação, caso o utilizador permita.

Observando a toolbar podemos ver funções como imprimir, gravar (para DWF ou DWFx), zoom e pan, ver Model e todos os Layouts, controlar Layers, Propriedades, e muitos outros, oferecendo assim um verdadeiro mini-CAD dentro do browser.

Este exemplo pode ser encontrado num dos blogs da Autodesk. Como o código já é um pouco antigo, a versão indicada do controle é também antiga (7.0.0.928), e podemos usar uma mais recente. Para isso localizamos a dll do controle no nosso computador (C:\Program Files\Common Files\Autodesk Shared\DWF Common\AdView.dll), verificamos a sua versão e actualizamos o código (no meu PC a dll tem a versão 9.0.0.96 e vinha incluída no Design Review 2009). Devemos escolher uma versão que seja a mais comum na empresa onde vamos implementar este sistema de visualização, para evitar que os utilizadores tenham de instalar software adicional.

Uma última nota – se incluirmos o controle ActiveX numa página web, sem indicar um ficheiro para abrir, então o botão de Abrir ficheiro fica activo e podemos escolher qualquer ficheiro que tenhamos no disco ou numa partilha. Mas é estranho que ao indicarmos um ficheiro no código essa opção fique inactivada…

Vantagens desta solução:

  • visualizador muito completo no browser
  • permite abrir qualquer ficheiro DWF acessível ao PC, quer em disco, partilha, ou web
  • permite imprimir, gravar como DWF/DWFx, e capturar imagens
  • interface muito familiar para quem usa software Autodesk

Desvantagens:

  • exige IE
  • exige que já exista software Autodesk instalado, ou que se instale o controle ActiveX

Links de interesse:

Solução 2 – Serviço Freewheel da Autodesk

A Autodesk lançou um serviço online (já em 2006!) que permite fazer upload de um ficheiro DWF e visualizá-lo num browser sem qualquer software adicional. Pode até visualizar-se num PDA. Se a página for configurada para abrir um ficheiro pré-definido, então o ficheiro tem de estar num url acessível ao servidor da Autodesk e é preciso cuidado com firewalls ou proxies restritivos. Mas se for o utilizador a indicar o ficheiro que pretende visualizar, então o proxy/firewall não deverá interferir.

Algumas empresas poderão não estar dispostas a colocar os seus desenhos DWF num website público, embora pessoalmente essa questão me pareça pouco importante – até porque seria necessário conhecer o url exacto do ficheiro para o poder obter. Por outro lado, (confesso já que não li os termos de utilização do serviço com atenção) fico com a sensação de que também aqui se podem levantar questões de confidencialidade – o que sucede aos ficheiros passados para o servidor da Autodesk? Quem os pode ver?… Se alguém quiser esclarecer esta questão seria óptimo.

O código HTML a incluir na página web é muito simples:

<iframe scrolling="no" width="800" height="600"
src="http://freewheel.autodesk.com/dwf.aspx?path=http://www.pinnacle-pizza.com/Hotel5.dwf">
</iframe>

A página ficaria com este aspecto:

dwf_freewheel_1

Não há software a instalar no nosso PC, e a visualização é excelente. Há menos controles disponíveis na toolbar, mas mesmo assim podemos fazer zoom e pan, e navegar pelo Model e Layouts do ficheiro. Através do menu File, podemos ainda abrir um ficheiro diferente (que é enviado para o servidor da Autodesk), enviar por email, e imprimir.

Como funciona? O servidor Freewheel recebe os pedidos do nosso browser para visualizar determinada parte do ficheiro DWF e devolve uma imagem dessa visualização, e assim por diante. Ao fazer zoom sobre, por exemplo, a área da legenda, essa área é devolvida ao browser como uma imagem que é mostrada ao utilizador, simulando o trabalho com o ficheiro.

O serviço Freewheel disponibiliza uma pequena API que permite efectuar pedidos específicos através do endereço (url): que ficheiro queremos, que área, que zoom, etc. E é isso que enviamos por email quando usamos essa opção no browser – um url que permite ao destinatário ver o desenho exactamente na posição em que o estamos a ver.

Mas há mais… o Autodesk Labs (equivalente ao Google Labs, onde se experimentam tecnologias até serem promovidas a produtos “a sério”) oferece uma versão melhorada do Freewheel. A capacidade que mais me impressionou foi a de podermos criar um repositório de ficheiros DWF que podemos manter no servidor da Autodesk e reutilizar ou partilhar com colegas de trabalho. Mais: é possível até partilhar uma sessão de visualização em que um dos utilizadores manipula o desenho e os restantes podem observar, trocar mensagens, e anotar o desenho. Quando testei com o Chrome o tamanho do texto e desenhos estava demasiado grande, e não sei quanto tempo os ficheiros ficam disponíveis… mas estas capacidades de cooperação são impressionantes.

Vantagens desta solução:

  • não é necessário software adicional
  • interface muito simples, com zooms e pan
  • acesso ao model e layouts do DWF
  • o utilizador pode carregar qualquer ficheiro DWF para visualizar
  • qualquer browser e até PDAs podem visualizar ficheiros DWF
  • pode-se imprimir
  • pode-se enviar um email com url para visualizar o ficheiro DWF
  • pode-se fazer uma sessão de visualização em conjunto
  • pode-se a partir de links fazer thumbnails usando apenas Javascript

Desvantagens:

  • menos funcionalidade CAD
  • os ficheiros a visualizar são transmitidos para o servidor da Autodesk, o que pode demorar
  • o desempenho depende da nossa ligação à Internet e da capacidade de resposta do servidor da Autodesk
  • os ficheiros são passados para o servidor da Autodesk
  • Internet é obrigatória

Links de interesse:

Conclusão

Estas 2 abordagens permitem resolver a questão de visualizar ficheiros CAD online, embora ainda de forma isolada e obrigando a converter para o formato DWF, mas é um primeiro passo para podermos ter a informação CAD integrada numa abordagem web. Claro que a partir do momento em que aceitamos a obrigatoriedade de converter os nossos ficheiros CAD para DWF abrimos a porta a usar o MapGuide para publicar esses ficheiros em serviços WMS, serviços esses que podem ser incluídos em aplicações webGIS… e isso já é outra estória.

Google Maps lidera?

Tempo de leitura: 2 min

Lembro-me da surpresa que foi em 2006, quando preparava slides para uma apresentação no curso pós-graduação sobre SIG leccionado no ISA, ao ver as estimativas sobre o número de visitas que as plataformas de mapas online recebiam só nos EUA.

A grande surpresa, além claro da enormidade dos números (42 milhões de visitas por mês! num só site), foi que a MapQuest era a #1 incontestável, com mais do dobro de visitas que o n.º 2 contabilizava. E o n.º 2 era o Google Maps…

Se pensarmos no facto de ter sido o Google Maps a primeira experiência com mapas na web para a maioria dos Internautas, e se considerarmos que a MapQuest é praticamente desconhecida do público em Portugal, a surpresa ainda é maior. E parecia ainda mais impossível a diferença do n.º de visitas ser tão gigantesca… Mas era um facto irrefutável, a MapQuest era a líder dos serviços online que apresentavam mapas com rotas/percursos.

Agora, 3 anos depois, surgem números que indicam que o Google Maps superou a MapQuest no mês de Janeiro de 2009. Embora se encontrem números discordantes quanto à liderança, o que ninguém discorda é que estes 2 sistemas estão a lutar lado-a-lado pela liderança.

Interessante também é analisar os 2 gráficos apresentados pelo Web Mapper, que ilustram como a vantagem da MapQuest foi desbaratada em  apenas 12 meses: não foi só o Google Maps que conseguiu aumentar a sua quota de visitas mensais de forma significativa (30% a 70% consoante a fonte), mas a MapQuest também foi responsável pelo seu próprio desaire, perdendo 9% de visitantes no último ano.

Quais as razões para a subida da Google e descida da MapQuest?

Em relação à Google podemos dizer que é mais do mesmo – melhoria dos serviços aliada à visibilidade da marca e imagem positiva que tem junto do público. É natural que os utilizadores do motor de busca, do GMail, Google News e outros, que estando satisfeitos usem também o Google Maps. Aliás, há dados que indicam que 61% das visitas no Google Maps vieram dos links apresentados nas pesquisas do Google.

Por seu lado, a MapQuest é criticada pela agressividade dos seus serviços de publicidade, que colocam os anúncios no centro de atenção das páginas. Ou seja, são demasiado intrusivos, e os utilizadores não se têm mostrado agradados com isso… a isto soma-se a lentidão em investir na plataforma para a modernizar e aproximar das plataformas concorrentes da Google e Microsoft. Mas é discutível se haveria algo que a MapQuest pudesse fazer para combater aquilo que os recursos imensos dos seus 2 concorrentes lhes permite fazer (novas funções, dados recentes e de excelente qualidade,…).

A ver vamos o que o futuro nos reserva. Pessoalmente, gosto que haja concorrência entre os serviços que utilizo. Por isso, desejo melhores dias e mais sabedoria à MapQuest.

PS – Para quem tiver curiosidade em conhecer o percurso da MapQuest, pode ver aqui um artigo sobre a sua história – de uma empresa tradicional de mapas a líder mundial de mapas online.