私はWindows Phone 8アプリに取り組んでいますが、座標フォームアドレスを取得する方法が見つかりません。問題は、自分の座標があり、自分と住所の間の距離を計算する必要があることです。
Windows Phone 8 についてはあまり文書化されていないので、助けてください。
私はWindows Phone 8アプリに取り組んでいますが、座標フォームアドレスを取得する方法が見つかりません。問題は、自分の座標があり、自分と住所の間の距離を計算する必要があることです。
Windows Phone 8 についてはあまり文書化されていないので、助けてください。
探しているのは「ジオコーディング」と呼ばれるもので、住所を GeoCoordinate に変換します。
前に述べたように、WP7 で Google と Bing を使用してそれを実現できます。Windows Phone 8 では、ジオコーディングとリバース ジオコーディングがフレームワークの一部としてサポートされています。この Nokia の紹介記事(「Geocoding」の下) でGeoCoding の概要を読むことができ、この他の Nokia の記事 でより包括的な概要を読むことができます。
住所から座標に変換するジオコーディングの例を次に示します。
private void Maps_GeoCoding(object sender, RoutedEventArgs e)
{
GeocodeQuery query = new GeocodeQuery()
{
GeoCoordinate = new GeoCoordinate(0, 0),
SearchTerm = "Ferry Building, San-Francisco"
};
query.QueryCompleted += query_QueryCompleted;
query.QueryAsync();
}
void query_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Ferry Building Geocoding results...");
foreach (var item in e.Result)
{
sb.AppendLine(item.GeoCoordinate.ToString());
sb.AppendLine(item.Information.Name);
sb.AppendLine(item.Information.Description);
sb.AppendLine(item.Information.Address.BuildingFloor);
sb.AppendLine(item.Information.Address.BuildingName);
sb.AppendLine(item.Information.Address.BuildingRoom);
sb.AppendLine(item.Information.Address.BuildingZone);
sb.AppendLine(item.Information.Address.City);
sb.AppendLine(item.Information.Address.Continent);
sb.AppendLine(item.Information.Address.Country);
sb.AppendLine(item.Information.Address.CountryCode);
sb.AppendLine(item.Information.Address.County);
sb.AppendLine(item.Information.Address.District);
sb.AppendLine(item.Information.Address.HouseNumber);
sb.AppendLine(item.Information.Address.Neighborhood);
sb.AppendLine(item.Information.Address.PostalCode);
sb.AppendLine(item.Information.Address.Province);
sb.AppendLine(item.Information.Address.State);
sb.AppendLine(item.Information.Address.StateCode);
sb.AppendLine(item.Information.Address.Street);
sb.AppendLine(item.Information.Address.Township);
}
MessageBox.Show(sb.ToString());
}
このコード スニペットを WP8 で実行すると、次のメッセージ ボックスが表示されます。
Bing Maps RESTサービスは、特定のアドレスからLat / Longを取得する機能も提供します。詳細については、MSDNのこちらをご覧ください。
ここでは、バインドマップキーを取得する必要があります...
いくつかのオプションがあります。これを達成するために私が使用したのは、GOOGLE、BING、YAHOO などの Web サービスを使用することです。
Bing (Cus は Windows Phone 用) では、マップ API にアクセスするためのキーが必要です。キーは http://www.microsoft.com/maps/developers/mobile.aspxで取得できます。
キーを取得したら、WP7.1 SDK for BING にアクセスできます。それがうまくいかない場合は、Rest Service http://msdn.microsoft.com/en-us/library/ff701715.aspxのロケーション API を使用します。