次の方法で共有


Location.Radius プロパティ (Search)

LocationRadius コンポーネントです。

構文

[DefaultValueAttribute(5)] 
public double Radius { get; set; }

解説

半径の有効な入力値の範囲は、0250 マイルです。既定の入力値は 5 マイルです。Radius の出力値は重要ではないので、常に既定の入力値の 5 が設定されます。

クエリにより返される PhoneBook 検索結果の総数は、半径の値の影響を直接受けます。

この例では、PhoneBook SourceType から、タイトル、説明、および位置の情報を要求し、その情報をコンソール ウィンドウに表示します。下記では、位置情報を要求するコードと、Radius プロパティを返すコードを、太字で示しています。

try
{
MSNSearchService s = new MSNSearchService();
SearchRequest searchRequest = new SearchRequest();
int arraySize = 1;
SourceRequest[] sr = new SourceRequest[arraySize];

sr[0] = new SourceRequest();
sr[0].Source = SourceType.PhoneBook;
sr[0].ResultFields = ResultFieldMask.Title | ResultFieldMask.Description | ResultFieldMask.Location;

searchRequest.Query = "coffee";
searchRequest.Requests = sr;
// Developer Provisioning System で指定されたアプリケーション ID を 二重引用符で囲って 
// SearchRequest の AppID の値として入力します。
searchRequest.AppID = "YOUR_APP_ID_GOES_HERE";
searchRequest.CultureInfo = "en-US";

// Location をシアトル (ワシントン州、米国) の中心に設定し、
// 半径の値を 25.0 マイルに設定します。緯度と経度を表す 10 進数値を使用して、Location を
// 変更し、サポートされている他の場所の住所を返すことができます。
searchRequest.Location = new Location();
double latitude = 47.603828;
double longitude = -122.328567;
    double radius = 25.0;
searchRequest.Location.Latitude = latitude;
searchRequest.Location.Longitude = longitude;
    searchRequest.Location.Radius = radius;

SearchResponse searchResponse;

searchResponse = s.Search(searchRequest);
foreach (SourceResponse sourceResponse in searchResponse.Responses)
    {
Result[] sourceResults = sourceResponse.Results;
if (searchResponse.Responses[0].Total > 0)
        {
Console.WriteLine(sourceResponse.Source.ToString() + " - 結果総数:" + sourceResponse.Total.ToString());
Console.WriteLine();
        }
foreach (Result sourceResult in sourceResults)
        {
if ((sourceResult.Title != null) && (sourceResult.Title != String.Empty))
Console.WriteLine("タイトル:" + sourceResult.Title);
if ((sourceResult.Description != null) && (sourceResult.Description != String.Empty))
Console.WriteLine("説明:" + sourceResult.Description);
if (sourceResult.Location != null)
            {
Console.WriteLine("緯度:" + sourceResult.Location.Latitude.ToString());
Console.WriteLine("経度:" + sourceResult.Location.Longitude.ToString());
                // Radius には、要求された値にはかかわらず、常に 5 が返されます。
                Console.WriteLine("半径:" + sourceResult.Location.Radius.ToString());
            }
Console.WriteLine("*****************************************************");
        }
Console.WriteLine("終了するにはいずれかのキーを押してください。");
Console.ReadLine();
    }
}
catch (SoapException fault)
{
Console.WriteLine(fault.Detail.InnerText.ToString());
Console.WriteLine("終了するにはいずれかのキーを押してください。");
Console.ReadLine();
}
catch (WebException webx)
{
Console.WriteLine(webx.ToString());
}

以下の出力の例は、このクエリの結果を示します。

PhoneBook - 結果総数: 11103

タイトル:Tully's Coffee

説明:(206) 682-6575 - 701 5th Ave, Seattle, WA

緯度: 47.604359

経度: -122.329779

半径: 5

*****************************************************

タイトル:Starbucks Coffee

説明:(206) 447-9934 - 701 5th Ave, Seattle, WA

緯度: 47.604359

経度: -122.329779

半径: 5

*****************************************************

タイトル:Walters Waffles

説明:(206) 622-8020 - 701 5th Ave Ste 3600, Seattle, WA

緯度: 47.604359

経度: -122.329779

半径: 5

*****************************************************

タイトル:Starbucks

説明:(206) 622-5789 - 700 5th Ave # 4, Seattle, WA

緯度: 47.604402

経度: -122.329798

半径: 5

*****************************************************

タイトル:4th Avenue Caffe

説明:(206) 340-9035 - 500 4th Ave, Seattle, WA

緯度: 47.602469

経度: -122.329599

半径: 5

*****************************************************

タイトル:Starbucks

説明:(206) 447-9934 - 701 4th Ave, Seattle, WA

緯度: 47.604007

経度: -122.330905

半径: 5

*****************************************************

タイトル:M & M Assoc

説明:(206) 625-3253 - 800 5th Ave, Seattle, WA

緯度: 47.60506

経度: -122.33046

半径: 5

*****************************************************

タイトル:Pioneer Mart

説明:(206) 903-6324 - 609 3rd Ave, Seattle, WA

緯度: 47.602865

経度: -122.331462

半径: 5

*****************************************************

タイトル:All City Coffee

説明:(206) 652-8331 - 125 Prefontaine Pl S, Seattle, WA

緯度: 47.60146

経度: -122.329689

半径: 5

*****************************************************

タイトル:Pegasus Coffee Bar

説明:(206) 682-3113 - 711 3rd Ave # 331, Seattle, WA

緯度: 47.603602

経度: -122.332252

半径: 5

*****************************************************

終了するにはいずれかのキーを押してください。