Agregar una columna de Geolocalización en una lista mediante programación en SharePointAdd a Geolocation column to a list programmatically in SharePoint

Obtenga información sobre cómo agregar mediante programación una columna de ubicación geográfica a una lista de SharePoint.Learn how to programmatically add a Geolocation column to a list in SharePoint. Integración de información de ubicación y mapas en listas de SharePoint y los sitios Web basados en ubicación con el nuevo campo de ubicación geográfica crear su propio tipo de campo basados en ubicación geográfica.Integrate location information and maps in SharePoint lists and location-based websites by using the new Geolocation field creating your own Geolocation-based field type. SharePoint presenta un nuevo tipo de campo con el nombre de ubicación geográfica que le permite realizar anotaciones en las listas de SharePoint con información de ubicación.SharePoint introduces a new field type named Geolocation that enables you to annotate SharePoint lists with location information. En las columnas de tipo de ubicación geográfica, puede escribir información de ubicación como un par de coordenadas de latitud y longitud en grados decimales o recuperar las coordenadas de la ubicación del usuario actual desde el explorador si implementa la API de ubicación geográfica de W3C.In columns of type Geolocation, you can enter location information as a pair of latitude and longitude coordinates in decimal degrees or retrieve the coordinates of the user's current location from the browser if it implements the W3C Geolocation API. Para obtener más información acerca de la columna de ubicación geográfica, vea Integrating ubicación y la funcionalidad de mapa en SharePoint.For more information about the Geolocation column, see Integrating location and map functionality in SharePoint. Columna de ubicación geográfica no está disponible de forma predeterminada en las listas de SharePoint.The Geolocation column is not available by default in SharePoint lists. Para agregar una columna a una lista de SharePoint, tiene que escribir código.To add the column to a SharePoint list, you have to write code. En este artículo, obtenga información sobre cómo agregar el campo de ubicación geográfica a una lista mediante programación utilizando el modelo de objetos de cliente de SharePoint.In this article, learn how to add the Geolocation field to a list programmatically by using the SharePoint client object model.

Un paquete MSI denominado SQLSysClrTypes.msi debe estar instalado en cada servidor front-end web de SharePoint para ver el valor del campo ubicación geográfica o los datos en una lista.An MSI package named SQLSysClrTypes.msi must be installed on every SharePoint front-end web server to view the geolocation field value or data in a list. Este paquete instala los componentes que implementan los nuevos tipos de identificador de geometría, zona geográfica y jerarquía en SQL Server 2008.This package installs components that implement the new geometry, geography, and hierarchy ID types in SQL Server 2008. De forma predeterminada, este archivo se instala para SharePoint Online.By default, this file is installed for SharePoint Online. Sin embargo, no es para una implementación local de SharePoint.However, it is not for an on-premises deployment of SharePoint. Debe ser miembro del grupo Administradores de la granja de servidores para llevar a cabo esta operación.You must be a member of the Farm Administrators group to perform this operation. Para descargar SQLSysClrTypes.msi, vea Microsoft SQL Server 2008 R2 SP1 Feature Pack para SQL Server 2008 o Microsoft SQL Server 2012 Feature Packpara SQL Server 2012 en Microsoft Download Center.To download SQLSysClrTypes.msi, see Microsoft SQL Server 2008 R2 SP1 Feature Pack for SQL Server 2008, or Microsoft SQL Server 2012 Feature Packfor SQL Server 2012 in the Microsoft Download Center.

Requisitos previos para agregar una columna de ubicación geográficaPrerequisites for adding a Geolocation column

  • Acceso a una lista de SharePoint, con privilegios suficientes para agregar una columna.Access to a SharePoint list, with sufficient privileges to add a column.

  • Una clave de mapas de Bing válida establecida en el nivel web o de granja de servidores, que se puede conseguir en el centro de cuentas de Mapas de Bing.A valid Bing Maps key set at the farm or web level, which can be obtained from the Bing Maps Account Center.

    Importante: Tenga en cuenta que es responsable de cumplimiento con los términos y condiciones aplicables al uso de la clave de mapas de Bing y toda divulgación es necesario para los usuarios de la aplicación en cuanto a datos que se pasan al servicio de mapas de Bing.Important: Please note that you are responsible for compliance with terms and conditions applicable to your use of the Bing Maps key, and any necessary disclosures to users of your application regarding data passed to the Bing Maps service.

  • Visual Studio 2010.Visual Studio 2010.

Ejemplo de código: Agregar una columna de ubicación geográfica a una lista mediante programaciónCode example: Add a Geolocation column to a list programmatically

Siga estos pasos para agregar una columna de ubicación geográfica a una lista mediante el modelo de objetos de cliente de SharePoint.Follow these steps to add the Geolocation column to a list using the SharePoint client object model.

Para agregar una columna de ubicación geográfica a una lista mediante el modelo de objetos de clienteTo add the Geolocation column to a list using the client object model

  1. Inicie Visual Studio.Start Visual Studio.

  2. En la barra de menús, elija Archivo, Nuevo proyecto. Se abre el cuadro de diálogo Nuevo proyecto.On the menu bar, choose File, New Project. The New Project dialog box opens.

  3. En el cuadro de diálogo Nuevo proyecto, elija C# en el cuadro Plantillas instaladas y, después, escoja la plantilla Aplicación de consola.In the New Project dialog box, choose C# in the Installed Templates box, and then choose the Console Application template.

  4. Dé un nombre al proyecto y haga clic en el botón Aceptar.Give the project a name, and then choose the OK button.

  5. Visual Studio crea el proyecto. Agregue una referencia a los siguientes ensamblados y haga clic en Aceptar.Visual Studio creates the project. Add a reference to the following assemblies, and choose OK.

    Microsoft.SharePoint.Client.dllMicrosoft.SharePoint.Client.dll

    Microsoft.SharePoint.Client.Runtime.dllMicrosoft.SharePoint.Client.Runtime.dll

  6. En el archivo .cs predeterminado, agregue una directiva using del siguiente modo.In the default .cs file, add a using directive as follows.

    using Microsoft.SharePoint.Client;

  7. Agregue el siguiente código al método Main en el archivo .cs.Add the following code to the Main method in the .cs file.


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();
        } 
    }
  1. Reemplace <dirección Url del sitio> y <título de la lista> por valores válidos.Replace <Site Url> and <List Title> with valid values.

  2. Establezca el marco de destino en Propiedades del proyecto como .NET Framework 4.0 o 3.5 y ejecute el ejemplo.Set the target framework in Project Properties as .NET Framework 4.0 or 3.5, and run the example.

  3. Vaya a la lista. Debería ver una columna denominada Location de tipo ubicación geográfica en la lista. Llegado este punto, puede especificar algunos valores y ver los resultados en acción. La figura 1 muestra la ubicación predeterminada y las características de mapa que espera que figuren en la lista.Navigate to the list. You should be able to see a column named Location of type Geolocation in the list. You can now enter some values and see it in action. Figure 1 shows the default location and map features that you can expect to see in your list.

    Figura 1. Vista resumida de la ubicación predeterminada y características de mapaFigure 1. Summarized view of the default location and map features

Característica predeterminada de geolocalización y mapas

Agregar un elemento de lista con valor de campo de ubicación geográfica a una lista de SharePoint mediante programaciónAdd a list item with the Geolocation field value to a SharePoint list programmatically

Una vez que el campo de ubicación geográfica se ha agregado a una lista de SharePoint, el desarrollador puede agregar el elemento de lista a la lista mediante programación. Existen dos modos de hacerlo: pasando el objeto FieldGeolocationValue al campo de ubicación geográfica o pasando un valor**** sin formato al campo de ubicación geográfica.After the Geolocation field is added to a SharePoint list, the developer can add the list item to the list programmatically. There are two ways to add the list item programmatically: by passing the FieldGeolocationValue object to the Geolocation field, and by passing Raw Value to the Geolocation field.

Método A: Pasar el objeto FieldGeolocationValue al campo de ubicación geográficaMethod A: Pass the FieldGeolocationValue object to the Geolocation field

  • Mediante el siguiente método se agrega un elemento de lista pasando el valor de ubicación geográfica como un objeto.The following method adds a list item by passing the Geolocation value as an object.

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: Pasar un valor sin formato al campo de ubicación geográficaMethod B: Pass a raw value to the Geolocation field

  • Mediante el siguiente método se agrega un elemento de lista a la lista de SharePoint pasando valores sin formato al campo de ubicación geográfica.The following method adds a list item to the SharePoint list by passing raw values to the Geolocation field.

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

Vea tambiénSee also