<\/HEAD>
A situação meteorológica predominante nos últimos dois dias na Alemanha foi dominada por Niklas, uma das tempestades mais fortes dos últimos anos. E enquanto o país, e principalmente a Bahn<\/SPAN><\/A>, ainda estão ocupados com os trabalhos de limpeza, vamos dar uma olhada em um mapa para ver o que realmente aconteceu nesses dois dias:<\/P>Com a ajuda de duas tabelas CSV, baixadas do site do Deutschen Wetterdienstes<\/SPAN><\/A>, foi rapidamente criado um Webmap no ArcGIS Online. Cada tabela gera uma camada para cada um dos dois dias. Ambas as camadas do mapa foram posteriormente publicadas como Hosted Feature Service e disponibilizadas publicamente.
Os serviços agora podem ser consumidos de qualquer lugar, e com a ajuda dos novos recursos na ArcGIS API for JavaScript<\/SPAN><\/A>, a pequena aplicação "Sturm Niklas über Deutschland<\/SPAN><\/A>" gera belas visualizações do tempo que chegou às estações de medição.<\/P>
<\/P>Basicamente, é utilizado o novo módulo "Smart Mapping"<\/SPAN><\/A>, ou seja, "cartografia inteligente". Sob esse termo mágico, tanto iniciantes quanto usuários experientes podem facilmente criar mapas úteis e impressionantes: o módulo oferece uma série de renderizadores pré-configurados que podem ser aplicados facilmente a atributos e classificam os recursos por cor, tamanho ou localização. Introduzido inicialmente na versão de março do ArcGIS Online, a JS API suporta essas novas funcionalidades desde a versão 3.13.<\/P>Como outro recurso adicional, foi incorporado o novo "Search Widget"<\/SPAN><\/A>, que permite não apenas pesquisar em um Locator Service, mas também em qualquer Feature Service simples. No caso da aplicação "Sturm Niklas", simplesmente pesquisamos no campo com os nomes das estações meteorológicas em uma das nossas duas camadas de feições.<\/P><\/P>
E o que a aplicação faz que o ArcGIS Online não pode?<\/H3>Como de costume, como desenvolvedor você tem possibilidades adicionais além da GUI. Neste caso, os renderizadores Smart Mapping predefinidos são interceptados no código e alterados dependendo dos dados. Assim, você ainda se beneficia das configurações padrão como Class Breaks automáticos ou uma Color Range, mas pode ajustar propriedades individuais.<\/P>A renderização ocorre no cliente, o que pode afetar o desempenho com grandes volumes de dados. No entanto, para tabelas simples e duas camadas sobrepostas, a velocidade de exibição está dentro do esperado.<\/P><\/P>Renderização na aplicação<\/H3>Através de um menu é possível alternar entre diferentes dados meteorológicos. Não é simplesmente uma camada que é mostrada ou escondida, mas os renderizadores para as duas camadas diárias são redefinidos. A seleção do menu define apenas um novo campo de atributo e, através de várias condições, as configurações dos renderizadores são definidas. Aqui está um trecho curto que mostra claramente como se diferencia pelo nome do campo (linhas 2-6) ou pelo nome da camada (linha 15) e como em certos casos os símbolos do ClassBreakRenderer inteligente recebem uma cor diferente:<\/P>else if ( <\/SPAN><\/EM>
field === "RR24" ||<\/SPAN><\/EM>
field === "FX" ||<\/SPAN><\/EM>
field === "SSS24" ||<\/SPAN><\/EM>
field === "SGLB24" ||<\/SPAN><\/EM>
field === "Höhe") {<\/SPAN><\/EM>
//Aqui começa o Smart Mapping<\/SPAN><\/EM>
smartMapping.createClassedSizeRenderer({<\/EM><\/SPAN>
layer: renderLayer,<\/SPAN><\/EM>
field: field,<\/SPAN><\/EM>
basemap: map.getBasemap(),<\/SPAN><\/EM>
classificationMethod: "quantile"<\/SPAN><\/EM>
}).then(function (response) {<\/SPAN><\/EM>
// Exibir o dia seguinte em cinza<\/SPAN><\/EM>
if (renderLayer.name==="DWD_20150401" || field === "Höhe") {<\/SPAN><\/EM>
array.forEach(response.renderer.infos, function (f) {<\/SPAN><\/EM>
f.symbol.color = new Color.fromHex("#CCCCCC");<\/SPAN><\/EM>
});<\/SPAN><\/EM>
}<\/EM><\/SPAN>
else {<\/EM><\/SPAN>
// em 31.3. distinção por dados<\/EM><\/SPAN>
if ( <\/EM>
field === "SSS24" ||
field === "SGLB24") {
array.forEach(response.renderer.infos, function (f) {
f.symbol.color = new Color.fromHex("#EDD873");
});
}Através dessa condição são atribuídas cores diferentes para diferentes dados - chuva é azul, sol é amarelo, enquanto todas as outras propriedades "inteligentes" do ClassedSizeRenderer permanecem inalteradas. Os dados do dia 1º de abril, ou seja, do dia seguinte à tempestade, são exibidos em cinza. Assim é possível ver rapidamente qual estação meteorológica ficou melhor posicionada no "ranking": mais cor significa que essa estação foi "melhor" no dia da tempestade. Se o círculo cinza for maior, a estação está melhor posicionada no ranking do dia 1º de abril.<\/P>\n\u00dcber eine andere Fallunterscheidung werden keine Farbwerte, aber ein Offset gesetzt. So erscheinen die Werte der beiden Tage nebeneinander auf der Karte.<\/>\n\u00dcber eine andere Fallunterscheidung werden keine Farbwerte, aber ein Offset gesetzt. So erscheinen die Werte der beiden Tage nebeneinander auf der Karte.<\/>\n\u00dcber eine andere Fallunterscheidung werden keine Farbwerte, aber ein Offset gesetzt. So erscheinen die Werte der beiden Tage nebeneinander auf der Karte.<\/>\n\u00dcber eine andere Fallunterscheidung werden keine Farbwerte, aber ein Offset gesetzt. So erscheinen die Werte der beiden Tage nebeneinander auf der Karte.<\/>