2

私はWindows Phone 8アプリに取り組んでいますが、座標フォームアドレスを取得する方法が見つかりません。問題は、自分の座標があり、自分と住所の間の距離を計算する必要があることです。

Windows Phone 8 についてはあまり文書化されていないので、助けてください。

4

3 に答える 3

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 で実行すると、次のメッセージ ボックスが表示されます。

フェリー ビルディングの詳細を表示するメッセージ ボックス

于 2013-01-24T01:53:27.577 に答える
0

Bing Maps RESTサービスは、特定のアドレスからLat / Longを取得する機能も提供します。詳細については、MSDNのこちらをご覧ください。

ここでは、バインドマップキーを取得する必要があります...

于 2013-01-23T08:46:23.820 に答える
0

いくつかのオプションがあります。これを達成するために私が使用したのは、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 を使用します。

于 2013-01-22T12:52:32.317 に答える