Criador de mapas internos

Este artigo apresenta conceitos e ferramentas que se aplicam ao Criador do Azure Mapas. Recomendamos que você leia este artigo antes de começar a usar a API e o SDK do Criador do Azure Mapas.

Você pode usar o Criador para desenvolver aplicativos com recursos de mapa baseados em dados de mapas do interior. Este artigo descreve o processo de carregar, converter, criar e usar seus dados de mapa. Normalmente, o fluxo de trabalho é concluído por duas personas diferentes com áreas distintas de experiência e responsabilidade:

  • Criador do mapa: responsável por organizar e preparar os dados do mapa.
  • Usuário de dados do mapa do Criador: usa os dados de mapa do cliente em aplicativos.

O diagrama a seguir ilustra todo o fluxo de trabalho.

Creator map data workflow

Criar o Criador do Azure Mapas

Para usar os serviços do Criador, o recurso Criador do Azure Mapas precisará ser criado e associado a uma conta do Azure Mapas com o tipo de preço Gen 2. Para obter informações de como criar o recurso Criador do Azure Mapas no Azure, confira gerenciar o Criador do Azure Mapas.

Dica

Para obter informações sobre preços, consulte a seçãoCriador nos preços do Azure Mapas.

Autenticação do Criador

O Criador herda as configurações de Controle de Acesso (IAM) do Azure Mapas. Todas as chamadas à API para acesso a dados devem ser enviadas com regras de autenticação e autorização.

Os dados de uso do Criador são incorporados em seus gráficos de uso do Azure Mapas e no log de atividades. Para obter mais informações, consulte Gerenciar a autenticação no Azure Mapas.

Importante

É recomendável usar:

  • O Microsoft Entra ID em todas as soluções criadas com uma conta do Azure Mapas usando os serviços do Criador. Para obter mais informações sobre o Microsoft Entra ID, consulte Autenticação do Microsoft Entra.

  • Configurações do controle de acesso baseado em função. Usando essas configurações, os criadores de mapa podem agir como Colaborador de Dados do Azure Mapas, e os usuários de dados do mapa do Criador podem agir como Leitor de Dados do Azure Mapas. Para saber mais, consulte Autorização dom controle de acesso baseado em função.

Tipos de item de dados do Criador

Os serviços do Criador criam, armazenam e usam vários tipos de dados que são definidos e abordados nas seções a seguir. Um item de dados do Criador pode ser dos seguintes tipos:

  • Dados convertidos
  • Dataset
  • Conjunto de peças
  • estilo
  • Configuração de mapa
  • Conjunto de estado do recurso
  • Conjunto de rotas

Carregar um pacote de desenho

O Criador coleta dados de mapas internos por meio da conversão de um pacote de desenho carregado. O pacote de desenho representa um recurso construído ou modelado. Para saber mais sobre os requisitos do pacote de desenho, confira Requisitos do pacote de desenho.

Siga as etapas descritas no artigo Como criar um registro de dados para carregar o pacote de desenhos na sua conta de armazenamento do Azure e, em seguida, registre-o na sua conta do Azure Mapas.

Importante

Certifique-se de anotar o valor do identificador exclusivo (udid). Ele será necessário. O udid é necessário para converter o pacote carregado em dados de mapa do interior.

Converter um pacote de desenho

O serviço Conversão converte um pacote de desenho carregado em dados de mapa do interior. O serviço de Conversão também valida o pacote. Os problemas de validação são classificados em dois tipos:

  • Erros: se forem detectados erros, o processo de conversão apresentará falha. Quando ocorre um erro, o serviço de Conversão fornece um link para o Visualizador de Erros de Desenho no Azure Mapas aplicativo Web autônomo. Você pode usar o Visualizador de Erros de Desenho para inspecionar erros e avisos do pacote do Drawing ocorridos durante o processo de conversão. Depois de corrigir os erros, você poderá tentar carregar e converter o pacote.
  • Avisos: se algum aviso for detectado, a conversão será realizada com sucesso. No entanto, é recomendável que você analise e resolva todos os avisos. Um aviso indica que parte da conversão foi ignorada ou corrigida automaticamente. Não resolver os avisos pode resultar em erros em processos futuros. Para obter mais informações, confira Avisos e erros do pacote do Drawing.

Criar dados de mapa interno

O Criador do Azure Mapas fornece os seguintes serviços para a criação de mapas:

Conjunto de dados

Um conjunto de dados é uma coleção de recursos de mapa interno. Os recursos de mapa do interior representam instalações definidas em um pacote de desenho convertido. Depois de criar um conjunto de dados com o Serviço de conjunto de dados, você pode criar vários conjunto de peças ou conjuntos de estados do recurso.

O Serviço de conjunto de dados permite aos desenvolvedores adicionar ou remover instalações de um conjunto de dados a qualquer momento. Para obter mais informações sobre como atualizar um conjunto de dados usando a API, confira as opções de acréscimo no Serviço de conjunto de dados. Para ver um exemplo de como atualizar um conjunto de dados, confira Manutenção de Dados.

Conjuntos de peças

Um conjunto de peças é uma coleção de dados de vetor que representa um conjunto de blocos de grade uniformes. Os desenvolvedores podem usar o Serviço de conjunto de peças para criar conjuntos de peças oriundos de um conjunto de dados.

Para refletir as diferentes fases de conteúdo, você poderá criar vários conjuntos de peças usando o mesmo conjunto de dados. Por exemplo, você pode criar um conjunto de peças com mobília e equipamento e outro sem mobília e equipamento. Você pode optar por gerar um conjunto de peças com as atualizações de dados mais recentes e outra sem as atualizações de dados mais recentes.

Além dos dados de vetor, o conjunto de peças fornece metadados para da renderização do mapa. Por exemplo, os metadados do conjunto de peças contêm níveis de zoom mínimo e máximo para o conjunto de peças. Os metadados também oferecem uma caixa delimitadora que define a extensão geográfica do conjunto de peças. A caixa delimitadora permite que um aplicativo defina o ponto central correto programaticamente. Para obter mais informações sobre metadados de conjunto de peças, confira Lista de conjunto de peças.

Depois que um conjunto de peças é criado, ele é recuperado pelo serviço Renderização.

Se um conjunto de peças de peças ficar desatualizado e não for mais útil, você poderá excluí-lo. Para obter mais informações sobre como excluir os conjuntos de peças, confira Manutenção de dados.

Observação

Um conjunto de peças é independente em relação ao conjunto de dados que o criou. Se você criar os conjuntos de peças com um conjunto de dados e, em seguida, atualizar esse conjunto de dados, os conjuntos de peças não serão atualizados.

Para refletir as alterações em um conjunto de dados, você precisará criar novos conjuntos de peças. Do mesmo jeito, se você excluir um conjunto de peças, o conjunto de dados não será afetado.

Estilo personalizado (versão prévia)

Um estilo define a aparência visual de um mapa. Ele define quais dados desenhar, a ordem para desenhá-los e como estilizá-los ao desenhá-los. Os estilos do Criador do Azure Mapas dão suporte ao padrão MapLibre para camadas de estilo e sprites.

Quando você converte um pacote de desenho depois de carregá-lo em sua conta Azure Mapas, os estilos padrão são aplicados aos elementos do mapa. O serviço de estilo personalizado permite personalizar a aparência visual do mapa. Você pode fazer isso editando manualmente o estilo JSON e importando-o para sua conta de Azure Mapas usando a solicitação Style - Create HTTP, no entanto, a abordagem recomendada é usar o editor de estilo visual. Para obter mais informações, confira Criar estilos personalizados para mapas do interior.

Camada de exemplo no arquivo style.json:

{
	"id": "indoor_unit_gym_label",
	"type": "symbol",
	"filter": ["all", ["has","floor0"], ["any", ["==", "categoryName", "room.gym"]]],
	"layout": {
		"visibility": "none",
		"icon-image": "gym",
		"icon-size": {"stops": [[17.5, 0.7], [21, 1.1]]},
		"symbol-avoid-edges": true,
		"symbol-placement": "point",
		"text-anchor": "top",
		"text-field": "{name}",
		"text-font": ["SegoeFrutigerHelveticaMYingHei-Medium"],
		"text-keep-upright": true,
		"text-letter-spacing": 0.1,
		"text-offset": [0, 1.05],
		"text-size": {"stops": [[18, 5], [18.5, 6.5], [19, 8], [19.5, 9.5], [20, 11]]}
	},
	"metadata": {"microsoft.maps:layerGroup": "labels_indoor"},
	"minzoom": 17.5,
	"paint": {
		"text-color": "rgba(0, 0, 0, 1)",
		"text-halo-blur": 0.5,
		"text-halo-color": "rgba(255, 255, 255, 1)",
		"text-halo-width": 1,
		"text-opacity": ["step", ["zoom"], 0, 18, 1]
	},
	"source-layer": "Indoor unit"
},
Propriedades da camada Descrição
id O nome da camada
tipo O tipo de renderização dessa camada.
Alguns dos tipos mais comuns incluem:
preenchimento: um polígono preenchido com uma borda de traço opcional.
Linha: uma linha traçada.
Símbolo: um ícone ou um rótulo de texto.
preenchimento-extrusão: um polígono extrudado (3D).
filter Somente os recursos que correspondem aos critérios de filtro são exibidos.
layout Propriedades de layout para a camada.
minzoom Um número entre 0 e 24 que representa o nível mínimo de zoom para a camada. Em níveis de zoom menores que o minzoom, a camada fica oculta.
paint Propriedades de tinta padrão para essa camada.
camada de origem Uma origem fornece os dados, de uma origem de bloco de vetor, exibidos em um mapa. Obrigatório para origens de bloco de vetor; proibido para todos os outros tipos de origem, incluindo origens GeoJSON.

Configuração de mapa

A configuração do mapa é uma matriz de configurações. Cada configuração consiste em um basemap e uma ou mais camadas, cada camada que consiste em uma tupla deconjunto de peças de + estilo.

A configuração de mapa é usada quando você Instancia o Gerenciador do Interior de um objeto de Mapa ao desenvolver aplicativos no Azure Mapas. Ele é referenciado usando o mapConfigurationId ou alias. As configurações de mapa são imutáveis. Ao fazer alterações em uma configuração de mapa existente, uma nova configuração de mapa é criada, resultando em uma mapConfingurationId diferente. Sempre que você criar uma configuração de mapa usando um alias já usado por uma configuração de mapa existente, ela aponta para a nova configuração de mapa.

O JSON a seguir é um exemplo de uma configuração de mapa padrão. Consulte a tabela a seguir para obter uma descrição de cada elemento do arquivo:

{
    "version": 1.0,
    "description": "This is the default Azure Maps map configuration for facility ontology tilesets.",
    "defaultConfiguration": "indoor_light",
    "configurations": [
        {
            "name": "indoor_light",
            "displayName": "Indoor light",
            "description": "A base style for Azure Maps.",
            "thumbnail": "indoor_2022-01-01.png",
            "baseMap": "microsoft_light",
            "layers": [
                {
                    "tilesetId": "fa37d225-924e-3f32-8441-6128d9e5519a",
                    "styleId": "microsoft-maps:indoor_2022-01-01"
                }
            ]
        },
        {
            "name": "indoor_dark",
            "displayName": "Indoor dark",
            "description": "A base style for Azure Maps.",
            "thumbnail": "indoor_dark_2022-01-01.png",
            "baseMap": "microsoft_dark",
            "layers": [
                {
                    "tilesetId": "fa37d225-924e-3f32-8441-6128d9e5519a",
                    "styleId": "microsoft-maps:indoor_dark_2022-01-01"
                }
            ]
        }
    ]
}
Propriedades de objeto de estilo Descrição
Nome O nome do estilo.
displayName O nome de exibição do estilo.
descrição A descrição definida pelo usuário do estilo.
miniatura Use para especificar a miniatura usada no seletor de estilo para esse estilo. Para obter mais informações, consulte o controle de seletor de estilo.
baseMap Use para definir o estilo de mapa base.
camadas A matriz de camadas consiste em um ou mais tuplas conjunto de peças + estilo, cada uma sendo uma camada do mapa. Isso permite vários edifícios em um mapa, cada edifício representado em seu próprio conjunto de peças.

Informações adicionais

Conjuntos de estados do recurso

Os conjuntos de estados do recurso são coleções de propriedades dinâmicas (estados) atribuídas a recursos de um conjunto de dados, como salas ou equipamentos. Um exemplo de um estado pode ser temperatura ou ocupação. Cada estado é um par chave/valor que contém o nome da propriedade, o valor e o carimbo de data/hora da última atualização.

É possível usar o serviço de Estado do Recurso para criar e gerenciar um conjunto de estados de recurso para um conjunto de dados. O conjunto de estados do recurso é definido por um ou mais estados. Cada recurso, como uma sala, pode ter um estado anexado a ele.

O valor de cada estado em um conjunto de estados é atualizado ou recuperado por dispositivos IoT ou outros aplicativos. Por exemplo, usando a API de Atualização de Estado de Recurso, os dispositivos que medem a ocupação de um espaço podem, de forma sistemática, postar a alteração do estado de uma sala.

Um aplicativo pode usar um conjunto de estados do recurso para renderizar dinamicamente recursos em uma instalação de acordo com seu estado atual e o respectivo estilo do mapa. Para saber mais sobre como usar os conjuntos de estado do recurso para definir o estilo dos recursos em um mapa de renderização, confira Módulo de mapas do interior.

Observação

Assim como nos conjuntos de peças, a alteração de um conjunto de dados não afetará o conjunto de estado do recurso existente, e a exclusão de um conjunto de estados do recurso não terá nenhum efeito sobre o conjunto de dados ao qual ele está anexado.

Wayfinding (versão prévia)

O serviço Wayfinding permite que você forneça aos clientes o caminho mais curto entre dois pontos em uma instalação. Depois de importar os dados do mapa interno e criar o conjunto de dados, você poderá usá-los para criar um conjunto de rotas. O conjunto de rotas fornece os dados necessários para gerar caminhos entre dois pontos. O serviço wayfinding leva em conta coisas como a largura mínima das aberturas e, opcionalmente, pode resultar na exclusão de elevadores ou escadas ao navegar entre níveis.

Wayfinding do Criador é da plataforma Havok.

Caminhos do wayfinding

Quando um caminho do wayfinding é gerado com êxito, ele localiza o caminho mais curto entre dois pontos na instalação especificada. Cada andar da viagem é representado como uma perna separada, assim como quaisquer escadas ou elevadores usados para se mover entre os andares.

Por exemplo, a primeira parte do caminho pode ser da origem para o elevador naquele andar. A próxima etapa é o elevador, e a etapa final é o caminho do elevador até o destino. O tempo estimado de viagem também é calculado e retornado no JSON de resposta HTTP.

Estrutura

Para que o wayfinding funcione, os dados da instalação devem conter uma estrutura. O serviço wayfinding calcula o caminho mais curto entre dois pontos selecionados em uma instalação. O serviço cria o caminho navegando em torno de estruturas, como paredes e quaisquer outras estruturas impermeáveis.

Penetrações verticais

Se a origem e o destino selecionados estiverem em andares diferentes, o serviço wayfinding determinará quais objetos de verticalPenetration, como escadas ou elevadores, estarão disponíveis como caminhos possíveis para navegar verticalmente entre os níveis. Por padrão, a opção que resulta no caminho mais curto é usada.

O serviço wayfinding inclui escadas ou elevadores em um caminho com base no valor da propriedade da direction penetração vertical. Para saber mais sobre a propriedade direction, confira verticalPenetration no artigo Ontologia do Facility. Confira as propriedades avoidFeatures e minWidth na documentação da API wayfinding para saber mais sobre outros fatores que podem afetar a seleção de caminho entre os níveis de piso.

Para obter mais informações, confira o artigo de instruções do Serviço wayfinding de mapas do interior.

Usando mapas internos

Render – Obter API da Peça de Mapa

A API do Azure Maps [Render - Get Map Tile] foi estendida para dar suporte a conjuntos de blocos do Creator.

Os aplicativos podem usar o Render – API Obter Peça de Mapa para solicitar conjuntos de peças. Os conjuntos de peças poderão ser integrados a um controle de mapa ou SDK. Para obter um exemplo de um controle de mapa que use o serviço Render, consulte Módulo dos Mapas Internos.

API do Serviço de Recurso da Web

É possível usar o WFS (Serviço de Recurso da Web) para consultar conjuntos de dados. O WFS segue os recursos de API do Open Geospatial Consortium. A API do WFS permite consultar recursos dentro do próprio conjunto de dados. Por exemplo, você pode usar o WFS para localizar todas as salas de reunião de tamanho médio de um local e piso específico.

API de Alias

Os serviços do Criador, como Conversão, Conjuntos de Dados, Conjunto de Peças e Estado do Recurso, retornam um identificador para cada recurso criado nas APIs. A API de Alias permite atribuir um alias para referenciar um identificador de recurso.

Módulo de mapas internos

O SDK da Web do Azure Mapas inclui o Módulo de mapas internos. Esse módulo oferece funcionalidades estendidas para a biblioteca de Controle de Mapa do Azure Mapas. O Módulo de mapas internos renderiza mapas internos criados no Criador. Ele integra widgets, como o seletor de piso, o que permite que os usuários visualizem vários pisos.

O módulo de mapas do interior permite que você crie aplicativos Web que integram dados de mapas do interior a outros serviços do Azure Mapas. As configurações de aplicativo mais comuns podem incluir a adição de conhecimento de outros mapas, como estradas, imagens, clima e trânsito, aos mapas do interior.

O Módulo de mapas internos também dá suporte ao estilo de mapa dinâmico. Para ver instruções passo a passo de como implementar estilos dinâmicos de um conjunto de estado do recurso em um aplicativo, confira Usar o módulo de mapa do interior.

Integração com o Azure Mapas

Ao começar a desenvolver soluções para mapas internos, você poderá descobrir maneiras de integrar os recursos do Azure Mapas. Por exemplo, você pode implementar o acompanhamento de ativos ou cenários de segurança usando o serviço Cerca Geográfica com mapas do interior do Criador. Por exemplo, a API de Cerca Geográfica pode ser usada para determinar se um trabalhador entrou ou saiu de áreas internas específicas. Para saber como conectar o Azure Mapas com a telemetria de IoT, confira Tutorial: implementar a análise espacial de IoT usando o Azure Mapas.

Manutenção de dados

A API de lista, atualização e exclusão do Criador do Azure Mapas permite listar, atualizar e excluir seus conjuntos de dados, de peças e de estados do recurso.

Observação

Sempre que você analisar uma lista de itens e decidir excluí-los, deverá considerar o impacto dessa exclusão em todas as APIs ou aplicativos dependentes. Por exemplo, se você excluir um conjunto de blocos que está sendo usado por um aplicativo por meio da API [Render - Get Map Tile], o aplicativo não renderizará esse conjunto de blocos.

Exemplo: atualizando um conjunto de dados

O exemplo a seguir mostra como atualizar um conjunto de dados, criar um conjunto de peças e excluir um conjunto de peças antigo:

  1. Siga as etapas nas seções Como carregar um pacote de desenho e Como converter um pacote de desenho para carregar e converter o novo pacote de desenho.
  2. Use a Criação de Conjunto de Dados para acrescentar os dados convertidos ao conjunto de dados existente.
  3. Use a Criação de Conjunto de Peças para gerar um conjunto de peças com o conjunto de dados atualizado.
  4. Salve o novo tilesetId para a próxima etapa.
  5. Atualize o identificador do conjunto de peças em seu aplicativo para habilitar a visualização do conjunto de dados do campus atualizado. Se o conjunto de peças anterior não for mais usado, você poderá excluí-lo.

Próximas etapas