Location.Longitude プロパティ (Search)
Location の Longitude コンポーネントです。
構文
public double Longitude { get; set; }
解説
Longitude の有効な入力値の範囲は、-180 ~ 180 です。正確な結果を得るには、入力値を 10 進数表現の経度の値に変換する必要があります。出力値は、SourceType.PhoneBook の 10 進数形式の結果のみが返されます。
経度線は、子午線とも呼ばれ、北極と南極の間を結んでいます。東西の位置を、度、分、および秒の単位で測定します。英国のグリニッジを通る本初子午線に、0 度の値が割り当てられています。本初子午線の西にある子午線には負の値が割り当てられ、東にある子午線には正の値が割り当てられます。たとえば、Washington 州 Seattle の経度は、西経 122° 19' 51.04" で、これは (負の) 10 進数値 -122.328567 に変換されます。
例
この例では、PhoneBook SourceType から、タイトル、説明、および位置の情報を要求し、その情報をコンソール ウィンドウに表示します。下記では、位置情報を要求するコードと、Longitude プロパティを返すコードを、太字で示しています。
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
*****************************************************
終了するにはいずれかのキーを押してください。