Compartilhar via


Adicionar de forma programática uma coluna de geolocalização a uma lista no SharePoint

Saiba como adicionar de forma programática uma coluna de geolocalização a uma lista no SharePoint. Integre informações de localização e mapas nas listas do SharePoint e sites baseados em localização usando o novo campo de geolocalização, criando seu próprio tipo de campo baseado em localização geográfica.

O SharePoint inclui um novo tipo de campo chamado Geolocalização, que permite fazer anotações em listas com informações de localização. Nas colunas do tipo Geolocalização, você poderá inserir informações de localização como um par de coordenadas de latitude e longitude em graus decimais ou recuperar as coordenadas da localização atual do usuário no navegador, se implementar a API de Localização Geográfica do W3C. Para saber mais sobre a coluna de geolocalização, confira Integrar a funcionalidade de local e o mapa no SharePoint. A coluna Geolocalização não está disponível por padrão nas listas do SharePoint. Para adicionar a coluna a uma lista do SharePoint, é necessário escrever código. Neste artigo, saiba como adicionar o campo de geolocalização a uma lista, por programação, usando o modelo de objeto do cliente do SharePoint.

Um pacote MSI chamado SQLSysClrTypes.msi deve ser instalado em cada servidor Web front-end do SharePoint para exibir o valor do campo Geolocalização ou os dados de uma lista. Este pacote instala componentes que implementam os novos tipos de ID de geometria, geografia e hierarquia no SQL Server 2008. Por padrão, esse arquivo está instalado no SharePoint Online. No entanto, não é para uma implantação local do SharePoint. Você deve ser um membro do grupo Administradores de Farm para executar essa operação. Para baixar SQLSysClrTypes.msi, consulte Microsoft SQL Server 2008 R2 SP1 Feature Pack for SQL Server 2008 ou Microsoft SQL Server 2012 Feature Packfor SQL Server 2012 no Microsoft Download Center.

Pré-requisitos para adicionar uma coluna de geolocalização

Observação

O PnP PowerShell é uma solução de software livre com uma comunidade ativa de suporte. Não há nenhuma SLA para o suporte da ferramenta de software livre por parte da Microsoft.

Exemplo de código: adicionar uma coluna de geolocalização a uma lista de forma programática no SharePoint

Siga estas etapas para adicionar a coluna de geolocalização a uma lista. Isso deve ser feito por programação com o CSOM ou o PowerShell

Adicionar a coluna de geolocalização a uma lista usando PnP de PowerShell

  1. Abrir o PowerShell

  2. Conecte-se ao site ao qual você deseja adicionar a coluna

    Connect-PnPOnline -url "https://TENANT.sharepoint.com/sites/SITEURL"
    
  3. Abra a lista na qual você deseja adicionar a coluna

    $list = Get-PnPList -Identity "LISTNAME"
    
  4. #Add campo Geolocalização – Alterar parâmetros conforme necessário

    Add-PnPField -List $list -Type GeoLocation -DisplayName "GeoLocationField" -InternalName "GeoLocationField" -AddToDefaultView -Required
    

Adicionar coluna de geolocalização a uma lista usando o modelo de objeto do cliente no Visual Studio

  1. Inicie o Visual Studio.

  2. Na barra de menus, escolha arquivo, o novo projeto. Abre a caixa de diálogo Novo projeto.

  3. Na caixa de diálogo Novo projeto, escolha c# na caixa Modelos instalados e, em seguida, escolha o modelo de Aplicativo de Console.

  4. Dê um nome de projeto e escolha o botão OK.

  5. Visual Studio cria o projeto. Adicione uma referência para os seguintes assemblies e escolha OK.

    • Microsoft.SharePoint.Client.dll
    • Microsoft.SharePoint.Client.Runtime.dll
  6. No arquivo. cs padrão, adicione uma diretiva de using da seguinte maneira.

    using Microsoft.SharePoint.Client;
    
  7. Adicione o seguinte código para o método Main no arquivo. cs.

    class Program
    {
      static void Main(string[] args)
      {
        AddGeolocationField();
        Console.WriteLine("Location field added successfully");
      }
      private static void AddGeolocationField()
      {
        // Replace site URL and List Title with Valid values.
        ClientContext context = new ClientContext("<Site Url>");
        List oList = context.Web.Lists.GetByTitle("<List Title>");
        oList.Fields.AddFieldAsXml("<Field Type='Geolocation' DisplayName='Location'/>",true, AddFieldOptions.AddToAllContentTypes);
        oList.Update();
        context.ExecuteQuery();
      }
    }
    
  8. Substitua <Site Url> e <List Title> por valores válidos.

  9. Defina a estrutura de destino nas Propriedades do Projeto como .NET Framework 4.0 ou 3.5 e executar o exemplo.

  10. Navegue até a lista. Você deve ser capaz de ver uma coluna chamada Localização do tipo geolocalização na lista. Agora você pode inserir alguns valores e vê-los em ação. A Figura 1 mostra a localização padrão e os recursos de mapa que você pode esperar ver na sua lista.

    Figura 1. Exibição resumida dos recursos padrão de localização e mapa Recurso de mapa e geolocalização padrão

Adicionar um item de lista com o valor do campo de geolocalização a uma lista do SharePoint programaticamente

Após a adição do campo de geolocalização a uma lista do SharePoint, o desenvolvedor pode adicionar o item de lista à lista programaticamente. Há duas maneiras de adicionar o item de lista programaticamente: passando o objeto FieldGeolocationValue para o campo de geolocalização e passando Valor Bruto para o campo de geolocalização.

Método A: Passar o objeto FieldGeolocationValue para o campo de geolocalização

  • O método a seguir adiciona um item de lista passando o valor de geolocalização como um objeto.

    private void AddListItem() {
      // Replace site URL and List Title with Valid values.
      ClientContext context = new ClientContext("<Site Url>");
      List oList = context.Web.Lists.GetByTitle("<List Name>");
    
      ListItemCreationInformation itemCreationInfo = new ListItemCreationInformation();
      ListItem oListItem = oList.AddItem(itemCreationInfo);
    
      oListItem["Title"] = "New Title";
    
      FieldGeolocationValue oGeolocationValue = new FieldGeolocationValue();
      oGeolocationValue.Latitude = (double)17.4;
      oGeolocationValue.Longitude = (double)78.4;
      oListItem["location"] = oGeolocationValue;
    
      oListItem.Update();
      context.ExecuteQuery();
    }
    

Método B: Passar um valor bruto para o campo de geolocalização

  • O método a seguir adiciona um item de lista à lista do SharePoint passando valores brutos para o campo de geolocalização.

    private void AddListItem() {
      // Replace site URL and List Title with Valid values.
      ClientContext context = new ClientContext("<Site Url>");
      List oList = context.Web.Lists.GetByTitle("<List Name>");
    
      ListItemCreationInformation itemCreationInfo = new ListItemCreationInformation();
      ListItem oListItem = oList.AddItem(itemCreationInfo);
    
      oListItem["Title"] = "New Title";
      // Data in WKT (World Known Text) format.
      oListItem["location"] = "POINT (78.4 17.4)" ;
    
      oListItem.Update();
      context.ExecuteQuery();
    }
    

Confira também