Arquivo mensais:fevereiro 2010

Cache e camadas no ArcGIS Server

Estou trabalhando com o ArcGIS Server 9.3.1 e tenho de inserir alguns serviços nele. Cada serviço corresponde à uma camada, ou  layer, em meu mapa.

Para melhorar o  desempenho – sofrível se comparado com o MapServer – existe uma opção para a utilização de cache no ArcGIS Server que funciona bem. Ao invés do servidor ter de reconstruir a imagem, toda vez que ela é requisitada, ele gera esta imagem apenas uma vez, grava em algum lugar e depois apenas a repassa para o servidor de aplicação.

Isto gerou um problema. Quando as imagens era geradas dinamicamente, havia a possibilidade do ArcGIS Server reprojetar e/ou reposicionar o mapa para  combiná-la com todos os layers.  Se um serviço usa EPSG:4618 e outro usa SR-ORG:95,  por exemplo. Mas com o uso do cache, a imagem criada possui apenas o sistema de referenciamento definida no serviço, não podendo mudar.

Assim, ao combinar dois layers cujos sistemas de referenciamento espacial são diferentes, temos as seguintes situações:

  • Os dois layers são dinâmicos:  um sistema é escolhido e os dois layers utilizam este;
  • Um dos layers é dinâmico e o outro possui cache: o dinâmico é projetado/adaptado ao sistema do que tem cache;
  • Os dois layers usam cache: apenas um deles é exibido. Não há reprojeção.

O ideal então é manter um único sistema de referenciamento espacial nos serviços. E aproveitar para deixar todos no SIRGAS2000.

Carregando bibliotecas Javascript abertas

Ext, jQuery, prototype, MooTools, Dojo, scrip.taculo.us, YUI. São algumas das feras que um desenvolvedor web tem de enfrentar, no caminho para matar o Dragão.

Algo que pode ajudar nesta tarefa é usar a própria API Google para carregar estas outras APIs:

http://code.google.com/apis/ajaxlibs/

O código, retirado direto do site, é o seguinte:

// Load Google JS API
<script src="http://www.google.com/jsapi"></script>
<script>
// Load jQuery
google.load("jquery", "1");
</script>

Você simplesmente:

  • carrega a API javascript do Google;
  • utiliza a API do Google para carregar as outras APIs, podendo escolher a versão, inclusive.

A opção de escolher a versão do script ajuda bastante a manter seus sistemas atualizados de forma bem simples.

O problema é apenas não poder guardar as APIs no servidor. Em uma rede local sem acesso à internet, por exemplo, isto já não serve.