Ramos da InformáticaMundoJSArcGIS Maps SDK for JavaScript: Guia de Edição 3D

ArcGIS Maps SDK for JavaScript: Guia de Edição 3D

Como as Camadas 3D e a Versão 4.32 do ArcGIS Maps SDK for JavaScript Estão Transformando o Desenvolvimento Geoespacial

-

Ramos da Informática
JS TS IA

Pesquisa: Como você está usando IA na sua rotina Dev?

Responda em menos de 2 minutos e ajude a direcionar nossos próximos artigos técnicos, guias e conteúdos.

Responder Pesquisa →

O ArcGIS, desenvolvido pela Esri, é uma plataforma líder no mercado de sistemas de informação geográfica (GIS), amplamente utilizada para criar, visualizar e analisar dados geoespaciais em mapas interativos. Seja em 2D ou 3D, o ArcGIS permite aplicações que vão desde visualizações simples até análises sofisticadas, especialmente com o ArcGIS Maps SDK for JavaScript, uma biblioteca poderosa para desenvolvedores web. Recentemente, dois artigos da Esri chamaram a atenção da comunidade técnica: um sobre as camadas de objetos 3D e outro detalhando as novidades da versão 4.32 do SDK. Este post mergulha nesses tópicos, trazendo insights e exemplos práticos para quem quer tirar o máximo proveito dessas atualizações.

Camadas de Objetos 3D: Edição Avançada no Navegador

As camadas de objetos 3D (3D Object Layers) representam um marco na evolução do ArcGIS Maps SDK for JavaScript. Diferentemente das camadas de cena tradicionais, focadas em visualização, essas novas camadas permitem edição direta de geometrias 3D no navegador. Desde a versão 4.30, quando saiu da fase beta, o recurso suporta manipulação de Mesh geometry, possibilitando ajustes detalhados em modelos como edifícios ou estruturas complexas. Isso é especialmente útil em cenários como planejamento urbano ou simulações arquitetônicas.

Um destaque é a integração com o Editor widget. Veja um exemplo básico de como iniciar uma edição em uma camada 3D:

Dica de Leitura: Se você está desenvolvendo aplicações web com ArcGIS Maps SDK for JavaScript, é provável que esteja trabalhando com componentes React para criar interfaces de usuário interativas. Para garantir que seus componentes sejam robustos e fáceis de manter, confira nosso artigo sobre como criar Componentes React à Prova de Balas (Guia Prático) e leve seu desenvolvimento para o próximo nível.

require([
  "esri/widgets/Editor",
  "esri/layers/SceneLayer"
], (Editor, SceneLayer) => {
  const layer = new SceneLayer({
    url: "https://seuservidor/arcgis/rest/services/Edificios3D/SceneServer",
    editingEnabled: true
  });

  const editor = new Editor({
    view: mapView,
    layerInfos: [{
      layer: layer,
      formTemplate: { // Define atributos editáveis
        elements: [{ type: "field", fieldName: "altura", label: "Altura" }]
      }
    }]
  });
  mapView.ui.add(editor, "top-right");
});

Para um hack avançado, considere exportar um modelo editado para glTF. Após manipular a geometria com o SDK, é possível usar a API para extrair os dados do mesh e convertê-los:

async function exportToGLTF(graphic) {
  const mesh = graphic.geometry; // Assume Mesh geometry
  const gltfData = await mesh.toGLTF(); // Hypothetical method, requires custom parsing
  downloadGLTF(gltfData, "modelo_editado.gltf");
}

function downloadGLTF(data, filename) {
  const blob = new Blob([JSON.stringify(data)], { type: "application/json" });
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = filename;
  link.click();
}

mbora o SDK não forneça um toGLTF() nativo, desenvolvedores podem parsear os dados de vértices e faces do mesh manualmente, aproveitando bibliotecas como Three.js para a conversão. Isso abre portas para workflows híbridos entre ArcGIS e ferramentas de modelagem 3D.

english-interview-debugger.sh
$ grep -r "senior_dev_communication" ./career
[CRITICAL_ERROR] Código sênior detectado, mas fluência falhou no runtime.
Motivo: Travou na hora de explicar a arquitetura (System Design) em inglês para o gringo.

O mercado internacional não quer um robô de gramática. Quer um dev que saiba defender uma tomada de decisão técnica sob pressão. Destrave sua conversão na Preply com aulas particulares focadas em TI.

$ ./fix-english.sh --target=remote-job
Achar Professor Particular ➔

Versão 4.32: Filtros, Destaques e Rotas Otimizadas

A versão 4.32 do ArcGIS Maps SDK for JavaScript trouxe melhorias significativas, detalhadas no artigo da Esri. Um dos recursos mais notáveis é o display filters, que permite filtrar dados em camadas sem recarregar o mapa. Ideal para datasets grandes, ele pode ser configurado no ArcGIS Pro ou diretamente no código. Aqui está um exemplo simples:

require(["esri/layers/FeatureLayer"], (FeatureLayer) => {
  const layer = new FeatureLayer({
    url: "https://seuservidor/arcgis/rest/services/Populacao/FeatureServer/0"
  });
  layer.definitionExpression = "populacao > 100000"; // Filtro básico
  layer.displayFilters = [{
    expression: "renda_media > 5000",
    active: true
  }];
  map.add(layer);
});

Para um hack mais avançado, combine filtros dinâmicos com interações do usuário. Este trecho atualiza o filtro baseado em um slider:

const layer = new FeatureLayer({ url: "..." });
const slider = document.getElementById("pop-slider");
slider.addEventListener("input", (e) => {
  layer.displayFilters[0].expression = `populacao > ${e.target.value}`;
  layer.refresh();
});

Outro recurso interessante da 4.32 é o suporte a múltiplos destaques visuais (highlights) em uma camada. Veja como aplicar destaques distintos:

view.whenLayerView(layer).then((layerView) => {
  const query = layer.createQuery();
  query.where = "estado = 'SP'";
  layer.queryFeatures(query).then((result) => {
    layerView.highlight(result.features, { color: [0, 255, 0, 0.5] }); // Verde
    view.on("pointer-move", (event) => {
      view.hitTest(event).then((response) => {
        if (response.results[0]) {
          layerView.highlight(response.results[0].graphic, { color: [255, 255, 0, 0.8] }); // Amarelo
        }
      });
    });
  });
});

Por fim, o componente de rotas (Directions) agora suporta edição interativa. Um hack útil é personalizar o cálculo de rotas com restrições dinâmicas:

require(["esri/widgets/Directions"], (Directions) => {
  const directions = new Directions({
    view: mapView,
    routeServiceUrl: "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World"
  });
  directions.viewModel.routeParameters.restrictionAttributes = ["Height Restriction"];
  directions.viewModel.routeParameters.restrictions = "Height Restriction < 4"; // Máximo 4 metros
  mapView.ui.add(directions, "top-right");
});

Considerações Finais

O ArcGIS Maps SDK for JavaScript continua a se consolidar como uma ferramenta essencial para desenvolvedores geoespaciais. As camadas de objetos 3D oferecem possibilidades avançadas de edição e integração, enquanto a versão 4.32 refina a experiência com filtros eficientes, destaques visuais e rotas interativas. Os exemplos e hacks apresentados aqui são apenas o começo — a documentação oficial da Esri e os release notes oferecem ainda mais detalhes para explorar.

Quem trabalha com GIS ou desenvolvimento web tem nas mãos uma biblioteca que não para de evoluir. Já experimentou esses recursos em projetos reais? Os comentários estão abertos para trocar ideias!

Ramos da Informática
JS TS IA

Pesquisa: Como você está usando IA na sua rotina Dev?

Responda em menos de 2 minutos e ajude a direcionar nossos próximos artigos técnicos, guias e conteúdos.

Responder Pesquisa →
Ramos Souza J
Ramos Souza Jhttps://ramosdainformatica.com.br/sobre/
Ramos de Souza Janones é Senior FullStack Engineer na ReDraw, com mais de 26 anos de trajetória no desenvolvimento de software. Especialista em arquiteturas escaláveis com React e TypeScript, sua jornada percorreu desde o Clipper até o ecossistema moderno de IA e microsserviços. Com passagens por grandes players como Wipro (Bradesco PIX), Ramos também atuou na Fiocruz em um projeto estratégico para o Ministério da Saúde, desenvolvendo o sistema de acompanhamento da saúde da mulher para a prevenção do câncer de colo, do monitoramento na infância à maturidade. Unindo visão técnica profunda, liderança e foco em performance, ele é o criador do portal Ramos da Informática, onde compartilha conhecimento sobre desenvolvimento Full Stack e as tendências de IA aplicadas à engenharia de software.

Mais recentes

NVIDIA Lança Cosmos 3: Nova Plataforma de IA Física para Robôs Humanoides e Fábricas Inteligentes

NVIDIA apresenta plataforma full-stack para robôs humanoides, robotáxis e fábricas inteligentes Cosmos 3, robôs humanoides e ferramentas para robotáxis são...

Repositórios e Skills Essenciais para Claude Code, Cursor e Codex

Se você já integrou o Claude Code, Cursor ou Codex no seu fluxo de trabalho, sabe que o jogo...

17 Ferramentas No-Code para Validar Seu Negócio

No mundo dos negócios, construir um Produto Mínimo Viável (MVP) não pode ser sinônimo de queimar o caixa da...

Extensões PostgreSQL: Substitua Redis, MongoDB e Kafka com SQL

Dominar as extensões PostgreSQL deixou de ser apenas uma opção para se tornar a principal estratégia de arquitetura em...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

State of AI 2026: A Maturidade da Inteligência Artificial

A inteligência artificial deixou definitivamente o território das experimentações e se consolidou como uma peça de infraestrutura fundamental no...

Construindo um Servidor MCP Personalizado com Node.js

Um guia prático para construir seu próprio servidor MCP para enriquecer as respostas de ferramentas de IA com contexto...

Mais Lidos

Como Escrever Artigos Técnicos e Ganhar Visibilidade em TI

Você tem conhecimento ou experiência em tecnologia, programação, ou...

Web3 e Negócios Descentralizados: Oportunidades e Riscos

Entenda como a revolução da Web3 e da Blockchain está a transformar a internet. Descubra as oportunidades e os riscos reais dos negócios descentralizados.

Como Escolher o Tipo Certo de Índice no Banco de Dados

Os índices são componentes fundamentais para otimizar consultas em...

Entenda SQL Join: INNER-JOIN, LEFT-JOIN, RIGHT-JOIN e Mais

Os comandos JOIN no SQL são fundamentais para combinar...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

Recursos da Comunidade

Carreira Internacional

JOB NA GRINGA

Meta de Salário Remoto
U$ 5.000/mês

O mapa completo para programadores do Brasil conquistarem contratos internacionais e mudarem de vida financeira.

  • Vagas exclusivas semanais: Membros acessam vagas com 7 dias de antecedência.
  • Workshops e lives gravadas: Buscar vagas não é óbvio. Nós te mostraremos como.
  • 498 Portais de vagas: Que contratam Brasileiros direto na sua dashboard.
  • Mentorias com Recrutadores: Encontros semanais ao vivo com Erika Linares.
  • Inglês diário com foco em conversação: Treine para entrevistas num ambiente sem julgamentos.
  • Suporte pós-contratação: Contabilidade e recebimento legal com a menor taxa.
Garantir Minha Vaga

Inscrição segura via Hotmart

Você vai gostarrelacionados
Continue aprendendo

E-Zine Dev Ramos

Quer dominar arquitetura e IA?

Junte-se a +10.000 profissionais. Receba semanalmente estratégias de Node.js, React e IA que nunca publicamos no blog.

Assinar Gratuitamente Zero spam. Cancele quando quiser.