SharePoint でプログラムを使用して位置情報の列をリストに追加するAdd a Geolocation column to a list programmatically in SharePoint

SharePointのリストに、プログラムによって [地理位置情報] 列を追加する方法について説明します。新機能の地理位置情報フィールドは、独自の位置情報に基づいたフィールド タイプを作成します。このフィールドを使用することで、SharePoint リスト内の位置情報と地図を、位置情報に基づく Web サイトに統合します。 SharePointには、新しいフィールド タイプである地理位置情報が導入され、SharePoint リストに位置情報の注釈を含めることができるようになりました。[地理位置情報] タイプの列では、位置情報として緯度と経度から成る座標値を 10 進数の度数を使用して入力したり、ブラウザーに W3C Geolocation API が実装されている場合はブラウザーからユーザーの現在位置の座標を取得したりできます。[地理位置情報] 列の詳細については、「 SharePoint でロケーションとマップ機能を組み込む」を参照してください。既定では、[地理位置情報] 列が SharePoint リストに含まれていません。[地理位置情報] 列を SharePoint リストに追加するには、コードを記述する必要があります。この記事では、SharePoint クライアント オブジェクト モデルを使用してプログラムによって地理位置情報フィールドをリストに追加する方法について説明します。Learn how to programmatically add a Geolocation column to a list in SharePoint. 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 introduces a new field type named Geolocation that enables you to annotate SharePoint lists with location information. 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. For more information about the Geolocation column, see Integrating location and map functionality in SharePoint. The Geolocation column is not available by default in SharePoint lists. To add the column to a SharePoint list, you have to write code. In this article, learn how to add the Geolocation field to a list programmatically by using the SharePoint client object model.

地理位置情報フィールドの値またはデータをリストに表示するには、SQLSysClrTypes.msi という MSI パッケージをすべての SharePoint フロントエンド Web サーバーにインストールする必要があります。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. このパッケージは、新しい図形座標、地理、および階層 ID の種類を SQL Server 2008 に実装するコンポーネントをインストールします。This package installs components that implement the new geometry, geography, and hierarchy ID types in SQL Server 2008. 既定では、このファイルが SharePoint Online 用にインストールされます。By default, this file is installed for SharePoint Online. ただし、SharePoint のオンプレミス展開用ではありません。However, it is not for an on-premises deployment of SharePoint. この操作を実行するには、Farm Administrators グループに属していることが必要です。You must be a member of the Farm Administrators group to perform this operation. SQLSysClrTypes.msi をダウンロードするには、Microsoft ダウンロード センターの Microsoft SQL Server 2008 R2 SP1 Feature Pack (SQL Server 2008 用) または Microsoft SQL Server 2012 Feature Pack (SQL Server 2012 用) を参照してください。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.

位置情報列を追加するための前提条件Prerequisites for adding a Geolocation column

  • Access to a SharePointリストへのアクセス、列を追加するのに必要な特権。Access to a SharePoint list, with sufficient privileges to add a column.

  • ファーム レベルまたは Web レベルでの有効な Bing Maps キーセット。Bing Maps Account Center から入手できます。A valid Bing Maps key set at the farm or web level, which can be obtained from the Bing Maps Account Center.

    重要: Bing Maps キーを使用する場合に適用される使用条件に準拠、Bing Maps サービスに渡されるデータに関してアプリケーションのユーザーに必要なデータ開示を行う責任は、このキーを設定するユーザーにあります。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.

コード例: プログラムによって [地理位置情報] 列をリストに追加するCode example: Add a Geolocation column to a list programmatically

SharePointクライアント オブジェクト モデルを使用するリストに [地理位置情報] 列を追加するには、次の手順に従います。Follow these steps to add the Geolocation column to a list using the SharePoint client object model.

クライアント オブジェクト モデルを使用するリストに [地理位置情報] 列を追加するにはTo add the Geolocation column to a list using the client object model

  1. Visual Studio を起動します。Start Visual Studio.

  2. メニュー バーで、[ファイル]、[新規作成]、[プロジェクト] の順に選択します。On the menu bar, choose File, New Project. [新しいプロジェクト] ダイアログ ボックスが表示されます。The New Project dialog box opens.

  3. [新しいプロジェクト] ダイアログ ボックスの [インストールされているテンプレート] ボックスで [C#] 言語を選択し、[コンソール アプリケーション] テンプレートを選択します。In the New Project dialog box, choose C# in the Installed Templates box, and then choose the Console Application template.

  4. プロジェクトに名前をつけて、[ OK] をクリックします。Give the project a name, and then choose the OK button.

  5. Visual Studio にプロジェクトが作成されます。次のアセンブリへの参照を追加して、[ OK] をクリックします。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. 既定の .cs ファイルでは、次のように using ディレクティブを追加します。In the default .cs file, add a using directive as follows.

    using Microsoft.SharePoint.Client;

  7. 次に示すコードを cs ファイル内の Main メソッドに追加します。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. <Site Url> と <List Title> を有効な値で置き換えます。Replace <Site Url> and <List Title> with valid values.

  2. [プロジェクトのプロパティ] で対象のフレームワークを .NET Framework 4.0 または 3.5 に設定し、コード例を実行します。Set the target framework in Project Properties as .NET Framework 4.0 or 3.5, and run the example.

  3. リストに移動します。リスト内に、地理位置情報タイプの [ 場所] という列があるはずです。この列に値を入力し、動作を確かめることができます。図 1 に、リスト内に表示される既定の位置と地図機能を示します。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.

    図 1. 既定の位置と地図機能の概要図Figure 1. Summarized view of the default location and map features

既定の地理位置情報およびマップ機能

プログラムによって、地理位置情報フィールド値を持つリスト アイテムを SharePoint リストに追加するAdd a list item with the Geolocation field value to a SharePoint list programmatically

SharePoint リストに地理位置情報フィールドを追加したら、そのリスト アイテムをリストにプログラムによって追加することができます。リスト アイテムをリストにプログラムによって追加するには、2 とおりの方法があります。1 つは FieldGeolocationValue オブジェクトを地理位置情報フィールドを渡す方法で、もう 1 つは Raw 値 を地理位置情報フィールドに渡す方法です。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.

メソッド A: FieldGeolocationValue オブジェクトを地理位置情報フィールドに渡すMethod A: Pass the FieldGeolocationValue object to the Geolocation field

  • 次のメソッドは、地理位置情報フィールド値をオブジェクトに渡すことで、リスト アイテムを追加します。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();
        }

メソッド B: 新しい Raw 値を地理位置情報フィールドに渡すMethod B: Pass a raw value to the Geolocation field

  • 次のメソッドは、Raw 値を地理位置情報フィールド値に渡すことで、SharePoint リストに項目を追加します。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();
        }

関連項目See also