Criador para mapas internos

Este artigo apresenta conceitos e ferramentas que se aplicam ao Azure Maps Creator. Recomendamos que leia este artigo antes de começar a utilizar a API e o SDK do Azure Maps Creator.

Você pode usar o Creator para desenvolver aplicativos com recursos de mapa baseados em dados de mapas internos. Este artigo descreve o processo de upload, conversão, criação e uso dos dados do mapa. Normalmente, o fluxo de trabalho é completado por duas personas diferentes com áreas de especialização e responsabilidade distintas:

  • Map maker: responsável pela curadoria e preparação dos dados do mapa.
  • Usuário de dados de mapa do criador: usa dados de mapa do cliente em aplicativos.

O diagrama a seguir ilustra todo o fluxo de trabalho.

Creator map data workflow

Criar o Azure Maps Creator

Para usar os serviços do Criador, um recurso do Azure Maps Creator deve ser criado e associado a uma conta do Azure Maps com a camada de preços Gen 2. Para obter informações sobre como criar um recurso do Azure Maps Creator no Azure, consulte Manage Azure Maps Creator.

Gorjeta

Para obter informações sobre preços, consulte a seção Criador em Preços do Azure Maps.

Autenticação do criador

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

Os dados de utilização do criador são incorporados nos gráficos de utilização e no registo de atividades do Azure Maps. Para obter mais informações, consulte Gerenciar autenticação no Azure Maps.

Importante

Recomendamos o uso:

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

  • Configurações de controle de acesso baseadas em função. Usando essas configurações, os criadores de mapas podem atuar como a função de Colaborador de Dados do Azure Maps e os usuários de dados de mapa do Criador podem atuar como a função de Leitor de Dados do Azure Maps. Para obter mais informações, consulte Autorização com controle de acesso baseado em função.

Tipos de item de dados do criador

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

  • Dados convertidos
  • Conjunto de dados
  • Tileset
  • style
  • Configuração do mapa
  • Conjunto de estados de recursos
  • Conjunto de rotas

Carregar um pacote de desenho

O Creator coleta dados de mapas internos convertendo um pacote de desenho carregado. O pacote de desenho representa uma instalação construída ou remodelada. Para obter informações sobre os requisitos do pacote de desenho, consulte Requisitos do pacote de desenho.

Siga as etapas descritas no artigo Como criar registro de dados para carregar o pacote de desenho em sua conta de armazenamento do Azure e registrá-lo em sua conta do Azure Maps.

Importante

Certifique-se de anotar o valor do identificador exclusivo (udid), você precisará dele. O udid é necessário para converter o pacote carregado em dados de mapa interno.

Converter um pacote de desenho

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

  • Erros: Se algum erro for detetado, o processo de conversão falhará. Quando ocorre um erro, o serviço de Conversão fornece um link para o aplicativo Web autônomo do Visualizador de Erros de Desenho do Azure Maps. Você pode usar o Visualizador de Erros de Desenho para inspecionar avisos e erros do pacote de Desenho que ocorreram durante o processo de conversão. Depois de corrigir os erros, você pode tentar carregar e converter o pacote.
  • Avisos: Se algum aviso for detetado, a conversão será bem-sucedida. No entanto, recomendamos que reveja e resolva todos os avisos. Um aviso significa que parte da conversão foi ignorada ou corrigida automaticamente. A não resolução dos avisos pode resultar em erros em processos posteriores. Para obter mais informações, consulte Avisos e erros do pacote de desenho.

Criar dados de mapa interno

O Azure Maps Creator fornece os seguintes serviços que dão suporte à criação de mapas:

  • Serviço de conjunto de dados.
  • Serviço de Tileset. Use o serviço Tileset para criar uma representação baseada em vetor de um conjunto de dados. Os aplicativos podem usar um conjunto de blocos para apresentar uma exibição visual baseada em bloco do conjunto de dados.
  • Serviço de styling personalizado. Use o serviço de estilo ou o editor de estilo visual para personalizar os elementos visuais de um mapa interno.
  • Serviço de estado de recurso. Use o serviço Estado do Recurso para oferecer suporte ao estilo de mapa dinâmico. Os aplicativos podem usar o estilo de mapa dinâmico para refletir eventos em tempo real em espaços fornecidos pelo sistema IoT.
  • Serviço de Wayfinding. Use a API wayfinding para gerar um caminho entre dois pontos dentro de uma instalação. Use a API do conjunto de rotas para criar os dados de que o serviço de localização de caminhos precisa para gerar caminhos.

Conjuntos de Dados

Um conjunto de dados é uma coleção de recursos de mapa interno. Os recursos do mapa interno representam recursos que são definidos em um pacote de desenho convertido. Depois de criar um conjunto de dados com o serviço Conjunto de Dados, você pode criar qualquer número de conjuntos de blocos ou conjuntos de estados de recursos.

A qualquer momento, os desenvolvedores podem usar o serviço Dataset para adicionar ou remover recursos a um conjunto de dados existente. Para obter mais informações sobre como atualizar um conjunto de dados existente usando a API, consulte as opções de acréscimo no serviço Conjunto de dados. Para obter um exemplo de como atualizar um conjunto de dados, consulte Manutenção de dados.

Tilesets

Um conjunto de blocos é uma coleção de dados vetoriais que representa um conjunto de blocos de grade uniformes. Os desenvolvedores podem usar o serviço Tileset para criar conjuntos de blocos a partir de um conjunto de dados.

Para refletir diferentes estágios de conteúdo, você pode criar vários conjuntos de blocos a partir do mesmo conjunto de dados. Por exemplo, você pode fazer um conjunto de azulejos com móveis e equipamentos, e outro conjunto de azulejos sem móveis e equipamentos. Você pode optar por gerar um conjunto de blocos com as atualizações de dados mais recentes e outro conjunto de blocos sem as atualizações de dados mais recentes.

Além dos dados vetoriais, o tileset fornece metadados para otimização de renderização de mapas. Por exemplo, os metadados do conjunto de blocos contêm um nível de zoom mínimo e máximo para o conjunto de blocos. Os metadados também fornecem uma caixa delimitadora que define a extensão geográfica do conjunto de blocos. Um aplicativo pode usar uma caixa delimitadora para definir programaticamente o ponto central correto. Para obter mais informações sobre metadados tileset, consulte Tileset List.

Depois que um conjunto de blocos é criado, ele é recuperado usando o serviço Renderizar.

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

Nota

Um conjunto de blocos é independente do conjunto de dados a partir do qual foi criado. Se você criar conjuntos de blocos a partir de um conjunto de dados e, posteriormente, atualizar esse conjunto de dados, os conjuntos de blocos não serão atualizados.

Para refletir as alterações em um conjunto de dados, você deve criar novos conjuntos de blocos. Da mesma forma, se você excluir um conjunto de blocos, o conjunto de dados não será afetado.

Estilo personalizado (visualização)

Um estilo define a aparência visual de um mapa. Ele define quais dados desenhar, a ordem para desenhá-los e como estilizar os dados ao desenhá-los. Os estilos do Azure Maps Creator suportam o padrão MapLibre para camadas de estilo e sprites.

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

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 Description
id O nome da camada
tipo O tipo de renderização para esta camada.
Alguns dos tipos mais comuns incluem:
preenchimento: um polígono preenchido com uma borda traçada opcional.
Linha: Uma linha traçada.
Símbolo: um ícone ou um rótulo de texto.
extrusão de enchimento: Um polígono extrudido (3D).
filtrar Somente os recursos que correspondem aos critérios de filtro são exibidos.
esquema 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 inferiores ao minzoom, a camada fica oculta.
pintura Propriedades de pintura padrão para esta camada.
camada de origem Uma fonte fornece os dados, a partir de uma fonte de mosaico vetorial, exibidos em um mapa. Necessário para fontes de telha vetorial; proibida para todos os outros tipos de fontes, incluindo fontes GeoJSON.

Configuração do mapa

A configuração do mapa é uma matriz de configurações. Cada configuração consiste em um mapa base e uma ou mais camadas, cada camada consistindo de uma tupla de tileset de estilo + .

A configuração de mapa é usada quando você Instancia o Gerenciador Interno de um objeto Map ao desenvolver aplicativos no Azure Maps. É referenciado usando o mapConfigurationId ou alias. As configurações do 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 um mapConfingurationIdarquivo . Sempre que você cria 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 do objeto de estilo Description
Name O nome do estilo.
displayName O nome para exibição do estilo.
descrição O usuário definiu a descrição do estilo.
miniatura Use para especificar a miniatura usada no seletor de estilos para esse estilo. Para obter mais informações, consulte o controle seletor de estilo.
Mapa base Use para definir o estilo do mapa base.
camadas A matriz de camadas consiste em um ou mais tileset + tuplas de estilo , sendo cada uma uma camada do mapa. Isso permite vários edifícios em um mapa, cada edifício representado em seu próprio conjunto de azulejos.

Informações adicionais

Conjuntos de estados de recursos

Os conjuntos de estados de recursos são coleções de propriedades dinâmicas (estados) atribuídas a recursos de conjunto de dados, como salas ou equipamentos. Um exemplo de estado pode ser a temperatura ou a 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.

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

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 do Estado do Recurso, os dispositivos que medem a ocupação do espaço podem postar sistematicamente a mudança de estado de uma sala.

Um aplicativo pode usar um conjunto de estados de recursos para renderizar dinamicamente recursos em uma instalação de acordo com seu estado atual e respetivo estilo de mapa. Para obter mais informações sobre como usar conjuntos de estados de recursos para estilizar recursos em um mapa de renderização, consulte Módulo Mapas internos.

Nota

Como os conjuntos de blocos, alterar um conjunto de dados não afeta o conjunto de estados de recursos existente e excluir um conjunto de estados de recursos não afeta o conjunto de dados ao qual ele está anexado.

Wayfinding (pré-visualização)

O serviço Wayfinding permite que você forneça aos seus clientes o caminho mais curto entre dois pontos dentro de uma instalação. Depois de importar os dados do mapa interno e criar o conjunto de dados, você pode 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 de wayfinding leva em conta coisas como a largura mínima das aberturas e, opcionalmente, pode excluir elevadores ou escadas ao navegar entre os níveis.

O criador wayfinding é alimentado pela Havok.

Caminhos de descoberta de caminhos

Quando um caminho de localização é gerado com êxito, ele encontra 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 etapa do caminho pode ser desde a origem até o elevador naquele andar. A próxima perna é o elevador e, em seguida, a perna final é o caminho do elevador para o destino. O tempo de viagem estimado também é calculado e retornado na resposta HTTP JSON.

Estrutura

Para que o wayfinding funcione, os dados da instalação devem conter uma estrutura. O serviço de 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ção vertical

Se a origem e o destino selecionados estiverem em andares diferentes, o serviço de wayfinding determina quais objetos verticalPenetração , como escadas ou elevadores, estão disponíveis como possíveis caminhos 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 baseado no valor da propriedade da penetração direction vertical. Para obter mais informações sobre a propriedade direction, consulte verticalPenetration no artigo Facility Ontology. Consulte as avoidFeatures propriedades 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, consulte o artigo de instruções do serviço de wayfinding de mapas internos.

Utilizar mapas interiores

Renderizar - Obter API de bloco de mapa

A API do Azure Maps [Renderizar - Obter Mosaico de Mapas] foi alargada para suportar conjuntos de mosaicos do Criador.

Os aplicativos podem usar a API Render - Get Map Tile para solicitar conjuntos de blocos. Os tilesets podem então ser integrados em um controle de mapa ou SDK. Para obter um exemplo de um controle de mapa que usa o serviço Renderizar, consulte Módulo de mapas internos.

API de serviço de recurso da Web

Você pode usar o serviço de recurso da Web (WFS) para consultar conjuntos de dados. O WFS segue os recursos da API do Open Geospatial Consortium. Você pode usar a API do WFS para consultar recursos dentro do próprio conjunto de dados. Por exemplo, você pode usar o WFS para encontrar todas as salas de reuniões de médio porte de uma instalação específica e nível do andar.

Alias API

Os serviços de criador, como Conversion, Dataset, Tileset e Feature State, retornam um identificador para cada recurso criado a partir das APIs. A API Alias permite atribuir um alias para fazer referência a um identificador de recurso.

Módulo de Mapas do interior

O SDK da Web do Azure Maps inclui o módulo Mapas Indoor. Este módulo oferece funcionalidades estendidas para a biblioteca de Controle de Mapa do Azure Maps. O módulo Mapas internos renderiza mapas internos criados no Creator. Ele integra widgets como o seletor de piso que ajudam os usuários a visualizar os diferentes andares.

Você pode usar o módulo Mapas internos para criar aplicativos Web que integram dados de mapas internos com outros serviços do Azure Maps. As configurações de aplicativos mais comuns incluem a adição de conhecimento de outros mapas - como estradas, imagens, clima e trânsito - a mapas internos.

O módulo Mapas Interiores também suporta o estilo dinâmico de mapas. Para obter um passo a passo para implementar o estilo dinâmico do conjunto de estados de recursos em um aplicativo, consulte Usar o módulo Mapa interno.

Integração do Azure Maps

À medida que começa a desenvolver soluções para mapas interiores, pode descobrir formas de integrar as capacidades existentes do Azure Maps. Por exemplo, você pode implementar o rastreamento de ativos ou cenários de segurança usando o serviço Geofence com mapas internos do Creator. Por exemplo, você pode usar a API Geofence para determinar se um trabalhador entra ou sai de áreas internas específicas. Para obter mais informações sobre como conectar o Azure Maps à telemetria IoT, consulte Tutorial: Implementar a análise espacial da IoT usando o Azure Maps.

Manutenção de dados

Você pode usar a Lista de Criadores do Azure Maps, Atualizar e Excluir API para listar, atualizar e excluir seus conjuntos de dados, conjuntos de blocos e conjuntos de estados de recursos.

Nota

Ao revisar uma lista de itens para determinar se deseja excluí-los, considere 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 conseguirá renderizar esse conjunto de blocos.

Exemplo: Atualizando um conjunto de dados

O exemplo a seguir mostra como atualizar um conjunto de dados, criar um novo conjunto de blocos e excluir um conjunto de blocos antigo:

  1. Siga as etapas nas seções Carregar um pacote de desenho e Converter um pacote de desenho para carregar e converter o novo pacote de desenho.
  2. Use Dataset Create para acrescentar os dados convertidos ao conjunto de dados existente.
  3. Use Tileset Create para gerar um novo conjunto de blocos a partir do conjunto de dados atualizado.
  4. Salve o novo tilesetId para a próxima etapa.
  5. Para habilitar a visualização do conjunto de dados do campus atualizado, atualize o identificador do conjunto de blocos em seu aplicativo. Se o conjunto de blocos antigo não for mais usado, você poderá excluí-lo.

Próximos passos