Referência da Embed API
Todos os comandos e eventos da API de incorporação do Icon Map, gerados a partir do contrato TypeScript do SDK. Cada comando é um método do handle que embed() retorna e é resolvido com o resultado indicado, ou rejeitado com um EmbedError cujo code é um dos códigos de erro.
Um comando marcado como read também exige a chave Read state and events do autor. Os tipos citados aqui (EmbedCamera, EmbedScene ...) são exportados por @iconmap/embed.
Comandos
Sessão
Sempre disponíveis depois que uma sessão é aberta. Não estão sujeitos à política do autor.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
ping |
- | { protocol: number; uptimeMs: number } |
Ida e volta até o visualizador. Útil como verificação de atividade e para deixar uma mensagem assíncrona anterior se concluir. |
getCapabilities |
- | EmbedCapabilities |
O descritor de capacidades novamente (o mesmo objeto com que ready foi resolvido). |
setToken |
{ token: string } |
- | Envia um token de incorporação novo antes que o antigo expire (veja tokenExpiring). Somente mapas publicados. |
setLanguage |
{ language: string } |
- | Muda o idioma do leitor. Somente um idioma de capabilities.map.locales; qualquer outro é rejeitado com invalid_args, nunca há um fallback silencioso. |
Câmera
Move e lê a vista. Grupo de política: camera.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getView |
- | EmbedViewState |
read A câmera e os limites visíveis. |
setView |
Partial<EmbedCamera> & { animate?: boolean } |
- | Define qualquer um entre center / zoom / bearing / pitch. Salta, a menos que animate seja true. |
flyTo |
Partial<EmbedCamera> & { durationMs?: number; curve?: number } |
- | Um voo animado até uma câmera. |
fitBounds |
{ bounds: EmbedBounds; padding?: EmbedPadding; maxZoom?: number; animate?: boolean; pitch?: number; bearing?: number } |
- | Enquadra uma caixa delimitadora. pitch / bearing são onde a câmera para; se omitidos, ela mantém a inclinação atual (passe pitch: 0, bearing: 0 para um enquadramento plano, com o norte para cima, depois de um voo inclinado). |
fitLayer |
{ layerId: string; padding?: EmbedPadding; maxZoom?: number; pitch?: number; bearing?: number } |
- | Enquadra os dados de uma camada conforme filtrados no momento. unknown_id quando a camada não tem extensão. pitch / bearing como em fitBounds. |
zoomBy |
{ delta: number; animate?: boolean } |
- | Aproxima ou afasta por um delta, limitado ao intervalo do mapa. |
resize |
- | - | Avisa o mapa de que o contêiner mudou de tamanho (depois que você redimensiona o pai do frame). |
setMaxBounds |
{ bounds: EmbedBounds | null } |
- | Restringe o deslocamento a uma caixa; null remove o limite. |
Camadas e visibilidade
Mostra e oculta o que o autor publicou. Somente visibilidade, nunca estilo. Grupo de política: layers.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getLayers |
- | EmbedLayerInfo[] |
read As camadas do mapa: id, nome, tipo e se cada uma está sendo exibida agora. |
getVisibility |
- | EmbedVisibility |
read Todas as alternâncias da cena, completamente preenchidas: camadas, rótulos e grupos de feições do mapa base, terminador, sombreamento, visuais. |
setVisibility |
EmbedVisibility |
{ skipped: string[] } | void |
Aplica um instantâneo parcial de visibilidade: o que você não incluir fica como está. IDs desconhecidos são ignorados e informados. Ocultar uma segmentação a DESATIVA, como em um indicador: sua seleção deixa de filtrar até que ela volte a ser exibida. Para filtrar o mapa sem mostrar um cartão, use o grupo de filtros (setFilters). |
setLayerVisibility |
{ layerId: string; visible: boolean } |
- | Mostra ou oculta uma camada. |
resetVisibility |
- | - | Volta todas as alternâncias ao estado publicado pelo autor. |
getVisuals |
- | EmbedVisualInfo[] |
read Os gráficos, segmentações, caixas de texto e outros visuais do mapa, com a visibilidade de cada um. |
getLayerStats |
{ layerId: string } |
{ layerId: string; visibleFeatureCount: number } |
read Quantas feições a camada contém agora, depois dos filtros e das segmentações. |
Filtros declarados
Valores para os filtros que o autor declarou no mapa. Somente mapas publicados. Grupo de política: filters.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getFilterSchema |
- | EmbedFilterSchemaEntry[] |
read Os filtros que o autor declarou: nome, tipo, operadores, padrão. Construa sua própria interface de filtros a partir disso. |
getFilters |
- | EmbedFilterValues |
read Os valores de filtro aplicados no momento. |
setFilters |
EmbedFilterValues |
- | Substitui os valores de filtro. Um nome que o autor não declarou é rejeitado com undeclared_filter antes que qualquer coisa seja aplicada. |
updateFilters |
{ operation: EmbedFilterOperation; filters?: EmbedFilterValues; display?: Record<string, EmbedFilterDisplay> } |
- | Adiciona, substitui ou remove filtros individuais, no estilo do Power BI, com configurações de exibição opcionais por filtro (locked, hidden, displayName). |
clearFilters |
- | - | Remove todos os valores de filtro da página host. |
Dados
Executa novamente as consultas ao vivo. Somente mapas publicados. Grupo de política: data.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
refreshData |
{ bindingIds?: string[] } | void |
{ refreshed: string[] } |
Executa novamente as consultas ao vivo, ignorando o cache de resultados. É resolvido com os IDs de vinculação atualizados (vazio em um mapa de instantâneo). |
Segmentações de dados
Controla as segmentações do leitor. Grupo de política: slicers.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getSlicers |
- | EmbedSlicerInfo[] |
read As segmentações do mapa e o estado atual de cada uma. |
getSlicerValues |
{ slicerId: string; search?: string } |
{ values: unknown[]; truncated: boolean } |
read Os valores que uma segmentação de lista oferece, opcionalmente restritos por uma string de pesquisa. Também funciona para uma segmentação oculta. |
setSlicerState |
{ slicerId: string; state: EmbedSlicerState } |
- | Define a seleção de uma segmentação, exatamente como se o leitor a tivesse feito. |
clearSlicer |
{ slicerId: string } |
- | Limpa uma segmentação. |
clearAllSlicers |
- | - | Limpa todas as segmentações. |
Seleção e realce
Seleciona feições, aplica filtro cruzado a gráficos, realça sem selecionar. Grupo de política: selection.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getSelection |
- | EmbedSelection |
read As chaves das feições selecionadas, por ID de camada. |
setSelection |
EmbedSelection |
{ skipped: string[] } | void |
Substitui a seleção. IDs de camada desconhecidos são ignorados e informados. |
clearSelection |
- | - | Limpa a seleção. |
selectByKey |
{ layerId: string; keys: Array<string | number>; field?: string; zoomTo?: boolean } |
{ matched: number } |
Seleciona feições pelas suas próprias chaves: com field, as chaves são comparadas com os valores desse campo ("ativo 41B"); sem ele, são chaves de feição como featureClick as informou. zoomTo enquadra o resultado. No máximo 500 chaves. field precisa ser uma coluna que o mapa publicado contém. Um mapa publicado tem apenas as colunas que usa (dicas de ferramenta, estilo, rótulos, segmentações), então uma coluna de chave que nada mais usa não está lá e não encontra nada: o autor a adiciona aos campos da dica de ferramenta da camada. |
getChartSelection |
- | Record<string, EmbedChartDatum[]> |
read Os pontos de dados selecionados em cada gráfico (o filtro cruzado do mapa), por ID de gráfico. |
setChartSelection |
{ chartId: string; datums: EmbedChartDatum[] } |
- | Seleciona pontos de dados em um gráfico, o que aplica filtro cruzado ao mapa como um clique faria. |
clearChartSelection |
{ chartId?: string } | void |
- | Limpa a seleção de um gráfico, ou de todos. |
closePopups |
- | - | Fecha o pop-up da feição, se houver um aberto. |
highlight |
{ layerId: string; keys: Array<string | number>; field?: string } |
{ matched: number } |
Destaque temporário: pinta keys em layerId como selecionadas SEM alterar a seleção: sem pop-up, sem escopo de painel, sem selectionChanged. O próximo clique do leitor o substitui. Com field, as chaves são resolvidas por esse campo, como em selectByKey. |
clearHighlight |
- | - | Remove um realce definido com highlight. |
Cenas, indicadores e tours
Captura e restaura o estado completo da sessão. Grupo de política: scenes.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
captureScene |
{ include?: Array<keyof EmbedScene>; opaque?: boolean } | void |
EmbedScene | { state: string } |
read O estado completo da sessão como um único objeto serializável: câmera, visibilidade, segmentações, filtros, seleção, mapa base. Guarde-o ou transforme-o em um link com sceneToUrl. |
applyScene |
{ scene: EmbedScene | { state: string }; animate?: boolean } |
{ skipped: string[] } |
Restaura uma cena capturada. IDs que o mapa não tem mais são ignorados e informados, então uma cena sobrevive a uma nova publicação. |
resetScene |
- | - | Volta tudo ao estado publicado pelo autor. |
getBookmarks |
- | EmbedBookmarkInfo[] |
read Os indicadores do autor. Vazio, a menos que o autor tenha escolhido oferecer indicadores ao publicar o mapa. |
applyBookmark |
{ bookmarkId: string; animate?: boolean } |
- | Aplica um indicador pelo mesmo caminho que a barra de indicadores usa. |
getTours |
- | EmbedTourInfo[] |
read Os tours do autor. |
playTour |
{ tourId: string } |
- | Inicia um tour. Os eventos de câmera gerados durante a reprodução trazem reason: "tour". |
stopTour |
- | - | Para o tour em reprodução. |
Apresentação
Mapa base, controles, tema, legenda, exportação de imagem. Grupo de política: presentation.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getBasemaps |
- | EmbedBasemapInfo[] |
read Os mapas base que o autor publicou para este mapa, e qual está ativo. |
setBasemap |
{ basemapId: string } |
- | Muda para um dos mapas base publicados. Não há como carregar um estilo próprio. |
setChrome |
EmbedChromeSettings |
- | Oculta ou mostra os controles do próprio mapa (legenda, controle de camadas, pop-ups, barra de indicadores, controles do tour, pesquisa). Uma chave pode ocultar um controle que o autor configurou; não pode adicionar um que ele não configurou. |
setTheme |
EmbedThemeSettings |
- | Claro, escuro ou seguir o mapa. |
setBackground |
{ background: "default" | "transparent" } |
- | Torna transparente a página por trás do mapa, para que o seu próprio fundo apareça. |
getLegend |
- | EmbedLegendEntry[] |
read A legenda como está renderizada no momento, em forma de dados: crie sua própria legenda fora do frame. |
getMapInfo |
- | EmbedMapInfo |
read O descritor do mapa: título, descrição, modo de dados, idiomas e a atribuição que você precisa exibir se ocultar nossos controles. |
print |
- | - | Abre a caixa de diálogo de impressão do navegador para o mapa. Recusado com denied_capability quando um rótulo de confidencialidade não permite exportação. |
exportImage |
EmbedExportImageArgs | void |
EmbedExportedImage |
read Um PNG ou JPEG do mapa como o leitor o vê, como URL de dados. Recusado com denied_capability quando um rótulo de confidencialidade não permite exportação. |
Comandos do menu pop-up
Adiciona suas próprias ações ao pop-up da feição. Grupo de política: commands.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
addMenuCommand |
EmbedMenuCommand |
- | Adiciona sua própria ação ao pop-up da feição. Apenas um título em texto simples e um ID entram no frame, nunca HTML ou script. Clicar nela gera menuCommandTriggered. |
removeMenuCommand |
{ id: string } |
- | Remove uma ação de pop-up que você adicionou. |
getMenuCommands |
- | Array<{ id: string; title: string }> |
read As ações de pop-up que você adicionou. |
Análise
Executa o mecanismo de análise de uma camada, quando o mapa tem um. Grupo de política: analysis.
| Comando | Argumentos | Resolvido com | Observações |
|---|---|---|---|
getAnalysisOps |
- | EmbedAnalysisOp[] |
read As operações de análise que este mapa responde, cada uma com sua camada e indicações de argumentos. Vazio quando o mapa não tem mecanismo de análise. |
runAnalysis |
{ op: string; layerId?: string; args?: Record<string, unknown> } |
EmbedAnalysisResult |
Executa uma operação de análise. Uma é executada por camada de cada vez; até 4 aguardam (busy além disso); 60 por minuto por sessão (budget_exceeded). Resultados grandes são limitados e marcados como truncated. |
getClock |
{ layerId?: string } | void |
EmbedClockState | null |
read O relógio de simulação de uma camada de análise, ou null quando ela não tem um. |
setClock |
{ simSeconds: number; layerId?: string } |
EmbedClockState |
Move o relógio de simulação de uma camada de análise. |
Somente no handle
Estes membros são executados na sua página, e não no mapa, então nunca aparecem em capabilities.commands.
| Membro | O que faz |
|---|---|
ready |
Uma promise do descritor de capacidades. É rejeitada com denied_origin quando a sua origem não é permitida. |
capabilities, protocol |
O que este visualizador responde, depois que isso é conhecido. |
on(name, handler) / off(name) |
Inscreve-se em um evento; on retorna uma função para cancelar a inscrição. |
render(options) |
Conclui uma incorporação adiada (deferRender: true). |
reload() |
Recarrega o frame. As inscrições são restauradas quando a nova sessão é aberta. |
fullscreen() / exitFullscreen() |
Coloca o frame em tela inteira. Chame a partir de um manipulador de clique: os navegadores exigem um gesto do usuário na sua página. |
destroy() |
Remove o frame e rejeita tudo o que estiver em andamento com destroyed. |
iframe |
O elemento <iframe> montado. |
Eventos
Nada é enviado até que você se inscreva (handle.on(name, handler) ou a opção events). Todo evento traz um seq válido para a sessão inteira; uma lacuna significa que um evento foi descartado. Os eventos de estado trazem um reason ("user", "command", "bookmark", "tour", "scene" ou "load"), para que uma sincronização bidirecional possa ignorar o próprio eco.
| Evento | Payload | Observações |
|---|---|---|
loaded |
- | O mapa foi renderizado (o onLoad da v1). |
rendered |
{ durationMs: number } |
Primeiro quadro ocioso: os dados do próprio mapa estão na tela. durationMs é contado a partir do início do frame. |
viewChanged |
EmbedViewState & { reason: EmbedChangeReason } |
A câmera se estabilizou (ou, com continuousView, se moveu). Com limitação de frequência; o último valor sempre chega. |
visibilityChanged |
{ visibility: EmbedVisibility; reason: EmbedChangeReason } |
Uma alternância de camada, visual ou mapa base mudou. |
filtersChanged |
{ filters: EmbedFilterValues; reason: EmbedChangeReason } |
Os valores de filtro da página host mudaram. |
slicerChanged |
{ slicerId: string; state: EmbedSlicerState; reason: EmbedChangeReason } |
A seleção de uma segmentação mudou. |
selectionChanged |
{ selection: EmbedSelection; reason: EmbedChangeReason } |
A seleção mudou. |
featureClick |
EmbedFeatureClick | null |
O leitor clicou em uma feição (null = clicou em uma área vazia do mapa). fields contém apenas os campos da dica de ferramenta da camada: o que o leitor já pode ver. |
featureHover |
EmbedFeatureClick | null |
O ponteiro entrou em uma feição (null = saiu). Desativado, a menos que você se inscreva; intervalo mínimo de 100 ms, e uma saída nunca é atrasada. |
linkClicked |
{ url: string; layerId?: string; featureKey?: string | number; buttonId?: string } |
Um hiperlink ou botão de link foi clicado, quando hyperlinkBehavior é raiseEvent ou navigateAndRaiseEvent. Encaminhe-o dentro do seu próprio aplicativo. |
menuCommandTriggered |
{ commandId: string; layerId: string; featureKey: string | number; fields: Record<string, unknown> } |
O leitor escolheu uma ação de pop-up que você adicionou com addMenuCommand. |
chartSelectionChanged |
{ chartId: string; datums: EmbedChartDatum[]; reason: EmbedChangeReason } |
Os pontos de dados selecionados de um gráfico mudaram. |
bookmarkApplied |
{ bookmarkId: string } |
Um indicador foi aplicado, pelo leitor, por um tour ou por você. |
tourStateChanged |
{ tourId: string | null; state: "started" | "keyframe" | "ended" } |
Um tour começou, chegou a um quadro-chave ou terminou. |
basemapChanged |
{ basemapId: string } |
O mapa base ativo mudou. |
themeChanged |
{ mode: string } |
O tema mudou. |
dataStateChanged |
{ state: "loading" | "ready" | "stale" | "error"; bindingIds?: string[]; reason?: string } |
Os dados ao vivo começaram a carregar, ficaram prontos, ficaram desatualizados ou falharam. |
tokenExpiring |
{ expiresInMs: number } |
O token de incorporação expira em expiresInMs (gerado 60 s antes). Responda com setToken. |
error |
EmbedErrorInfo |
Um erro do visualizador depois que a sessão foi aberta. |
viewerResized |
{ width: number; height: number } |
O contêiner do mapa mudou de tamanho. |
analysisResult |
EmbedAnalysisResult & { reason: EmbedChangeReason } |
Uma operação de análise terminou, seja por um clique do leitor ou por um comando da página host. |
clockChanged |
EmbedClockState & { reason: EmbedChangeReason } |
O relógio do mecanismo de uma camada de análise avançou (com limitação de frequência, EMBED_LIMITS.clockIntervalMs). |
Códigos de erro
| Código | Significado |
|---|---|
unsupported_protocol |
O visualizador e o SDK não têm nenhuma versão de protocolo em comum. |
unsupported_command |
Esta versão do visualizador, esta superfície de incorporação ou este mapa não responde ao comando. Verifique capabilities.commands antes. |
denied_capability |
O autor do mapa não ativou o grupo do comando (ou o acesso de leitura), ou um rótulo de confidencialidade recusa uma exportação. |
denied_origin |
A origem da sua página não está nas origens permitidas do mapa, então nenhuma sessão de controle foi aberta. |
invalid_args |
Os argumentos não passaram na validação. message diz qual. |
not_ready |
A parte do mapa de que o comando precisa não ficou disponível em 10 segundos. Os comandos enviados cedo ficam retidos, não são recusados, então isso significa que o mapa não conseguiu iniciar. Verifique onError. |
unknown_id |
Um ID de camada, indicador, tour, segmentação, gráfico, mapa base ou operação de análise que este mapa não tem. |
undeclared_filter |
setFilters indicou um filtro que o autor não declarou. detail.undeclared os lista. |
rate_limited |
Mais de 60 comandos em um segundo, ou o limite de taxa do back-end em uma atualização de dados. |
budget_exceeded |
O orçamento de análise por sessão, ou o orçamento de consultas da publicação, foi esgotado. |
too_large |
A mensagem do comando excedeu EMBED_LIMITS.maxCommandBytes. |
busy |
Há comandos de análise demais aguardando nessa camada. |
data_error |
O back-end falhou em uma solicitação de dados. Informe o requestId em um relato ao suporte. |
auth_required |
O token de incorporação está ausente, expirou ou foi recusado. Forneça getToken ou chame setToken. |
timeout |
O visualizador não respondeu dentro do tempo limite do comando (no SDK). |
destroyed |
O handle foi destruído, ou o frame foi recarregado, enquanto o comando estava em andamento (no SDK). |
internal |
O comando gerou uma exceção inesperada. detailedMessage traz a causa. |
Limites
Fixados pelo visualizador (EMBED_LIMITS no SDK). Uma página host não pode aumentá-los, e um autor não pode reduzi-los.
| Limite | Valor |
|---|---|
| Maior mensagem de comando | 64 KB; acima disso, é recusada com too_large |
| Maior payload de evento | 32 KB; acima disso, é descartado (você vê uma lacuna em seq) |
Chaves em um highlight / selectByKey |
500 |
| IDs em um resultado de análise | 1000; depois, truncated: true |
| Linhas em um resultado de análise | 200; depois, truncated: true |
| Comandos de análise por sessão | 60 por minuto; depois, budget_exceeded |
| Comandos de análise aguardando em uma camada | 4; depois, busy |
Intervalo de featureHover |
100 ms (o último valor sempre chega) |
Intervalo de clockChanged |
250 ms (o último valor sempre chega) |
| Comandos por segundo | 60; depois, rate_limited |