Partager via


Ajouter une colonne Géolocalisation à une liste par programmation dans SharePoint

Découvrez comment ajouter par programme une colonne de géolocalisation à une liste dans SharePoint. Intégrer des informations d'emplacement et cartes dans les listes SharePoint et les sites Web basés sur un emplacement à l'aide du nouveau champ de géolocalisation créer votre propre type de champ de géolocalisation.

SharePoint introduit un nouveau type de champ nommé Géolocalisation qui vous permet d’ajouter des annotations avec des informations de localisation sur des listes SharePoint. Dans les colonnes de type Géolocalisation, vous pouvez entrer des informations de localisation sous la forme d’une paire de coordonnées de latitude et de longitude en degrés décimaux ou récupérer les coordonnées de l’emplacement actuel de l’utilisateur à partir du navigateur s’il implémente l’API de géolocalisation W3C. Pour plus d'informations sur la colonne Géolocalisation, consultez Intégration de la fonctionnalité d'emplacement et de mappage dans SharePoint. La colonne Géolocalisation n’est pas disponible par défaut dans les listes SharePoint. Pour ajouter la colonne à une liste SharePoint, vous devez écrire du code. Dans cet article, Découvrez comment ajouter par programme le champ Géolocalisation à une liste à l’aide du modèle objet client SharePoint.

Un package MSI appelé SQLSysClrTypes.msi doit être installé sur chaque serveur web frontal SharePoint pour afficher la valeur ou les données du champ de géolocalisation dans une liste. Ce package installe les composants qui implémentent les nouveaux types d’ID de hiérarchie, géométrie et géographie dans SQL Server 2008. Par défaut, ce fichier est installé pour SharePoint Online. Toutefois, il ne s’agit pas d’un déploiement local de SharePoint. Vous devez être membre du groupe Administrateurs de la batterie pour exécuter cette opération. Pour télécharger SQLSysClrTypes.msi, consultez Microsoft SQL Server 2008 R2 SP1 Feature Pack pour SQL Server 2008 ou Microsoft SQL Server 2012 Feature Packpour SQL Server 2012 dans le Centre de téléchargement Microsoft.

Conditions préalables à l’ajout d’une colonne Géolocalisation

  • Accès à une liste de SharePoint, avec des privilèges suffisants pour ajouter une colonne.

  • Une clé Bing Cartes valide définie au niveau de la batterie ou du web, qui peut être obtenue à partir du Centre des comptes Bing Cartes.

    Importante

    [!IMPORTANTE] Veuillez noter que vous êtes responsable de la conformité avec les termes et conditions applicables à votre utilisation de la clé Bing Maps et les informations nécessaires à fournir aux utilisateurs de votre application en matière de données transmises au service Bing Maps.

  • Visual Studio 2010

  • SharePoint Online Management Shell : https://www.microsoft.com/download/details.aspx?id=35588

  • SharePoint PnP-PowerShell (hérité) : https://github.com/SharePoint/PnP-PowerShell/

  • SharePoint PnP.PowerShell (dernière version) : https://github.com/pnp/powershell

Remarque

PnP PowerShell est une solution open source pour laquelle un support est assuré par la communauté active. Il n’existe pas de contrat SLA Microsoft pour le support technique relatif à cet outil open source.

Exemple de code : Ajout d’une colonne de géolocalisation à une liste par programmation existante

Pour ajouter la colonne Géolocalisation à une liste, procédez comme suit. Vous devez effectuer cette opération par programme avec CSOM ou PowerShell

Pour ajouter la colonne Géolocalisation à une liste à l’aide de PowerShell PnP, procédez comme suit.

  1. Ouvrir PowerShell

  2. Connectez-vous au site auquel vous voulez ajouter la colonne

    Connect-PnPOnline -url "https://TENANT.sharepoint.com/sites/SITEURL"
    
  3. Ouvrez la liste à laquelle vous voulez ajouter la colonne

    $list = Get-PnPList -Identity "LISTNAME"
    
  4. #Add le champ Géolocalisation - Modifier les paramètres si nécessaire

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

Pour ajouter la colonne de géolocalisation dans une liste à l'aide du modèle objet de client dans Visual Studio, procédez comme suit.

  1. Démarrez Visual Studio.

  2. Dans la barre de menus, choisissez fichier, nouveau projet. La boîte de dialogue Nouveau projet s'ouvre.

  3. Dans la boîte de dialogue Nouveau projet, sélectionnez Visual C# dans la zone Modèles installés, puis le modèle Application Console.

  4. Nommez le projet, puis cliquez sur le bouton OK.

  5. Visual Studio crée le projet. Ajoutez une référence aux assemblys suivants et cliquez sur OK.

    • Microsoft.SharePoint.Client.dll
    • Microsoft.SharePoint.Client.Runtime.dll
  6. Dans le fichier .cs par défaut, ajoutez une directive using comme suit.

    using Microsoft.SharePoint.Client;
    
  7. Ajoutez le code suivant à la méthode Main dans le fichier .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. Remplacez <Site Url> et <List Title> par des valeurs valides.

  9. Définir le framework cible dans les propriétés du projet en tant que .NET Framework 4.0 ou 3.5 et exécuter l'exemple.

  10. Accédez à la liste. Vous devez être en mesure de voir une colonne nommée Emplacement de type Géolocalisation dans la liste. Vous pouvez désormais entrer des valeurs et les voir en action. La figure 1 présente les fonctions cartographiques et de localisation par défaut que vous pouvez espérer voir dans votre liste.

    Figure 1. Vue résumée des fonctionnalités d’emplacement et de carte par défaut Fonction cartographique et géolocalisation par défaut

Ajouter par programme un élément de liste avec la valeur du champ Géolocalisation à une liste SharePoint

Une fois le champ Géolocalisation ajouté à une liste SharePoint, le développeur peut ajouter l’élément de liste à la liste par programme. Deux méthodes s’offrent à vous pour ajouter l’élément de liste par programme : en transmettant l’objet FieldGeolocationValue au champ Géolocalisation et en transmettant Valeur brute au champ Géolocalisation.

Méthode A : transmettre l’objet FieldGeolocationValue au champ Géolocalisation

  • La méthode suivante permet d’ajouter un élément de liste en transmettant la valeur Géolocalisation sous la forme d’un objet.

    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éthode B : transmettre une valeur brute au champ Géolocalisation

  • La méthode suivante permet d’ajouter un élément de liste à la liste SharePoint en transmettant les valeurs brutes au champ Géolocalisation.

    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();
    }
    

Voir aussi