Location.Radius プロパティ (Search)
Location の Radius コンポーネントです。
構文
[DefaultValueAttribute(5)]
public double Radius { get; set; }
解説
半径の有効な入力値の範囲は、0 ~ 250 マイルです。既定の入力値は 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
*****************************************************
終了するにはいずれかのキーを押してください。