WP 8の地図とナビゲーション
36481 ワード
原文WP 8の地図とナビゲーション
コードの例
ソースファイル:
Media:MapSample.zip
テストベース
SDK: Windows Phone SDK 8.0
互換性
プラットフォーム:Windows Phone 8 and later
Windows Phone 8
文章
から
Xinx Gong
30 Nov 2012で作成
最後に
hamishwillee
26 Jun 2013で編集
1地図コントロール
1.1地図表示
1.2地図の中心点と拡大・縮小比を指定する
1.3用Map.SetViewダイナミック調整マップ
1.4地図作成モード
1.5地図色モード
1.6ランドマークと歩行者の特性を表示する
2地図サービス
2.1緯度によるアドレス情報の検索
2.2ある場所の経緯を探す
2.3路線計画
3オフラインマップ管理
4サンプルコードダウンロード
WP 8では,新しいMapAPIsを用いて地図ベースのアプリケーションを開発することができ,位置や検索機能を含めることができる.WP 8で使用するのはノキア地図、WP 7である.1の中のBing地図は依然としてサポートされているが、使用は推奨されず、すでにBing地図を使用するWP 7と互換性のために使用されているだけである.1アプリケーション.
WP 8ではMapコントロールを使用して地図を表示します.使用する前に、次のことに注目する必要があります.
1.Mapコントロールとサービスで使用するnamespace
2.XAMLファイルでMapコントロールを使用するために必要なxmlns宣言
3.WMAppManifest.xmlにID_を追加する必要がありますCAP_MAP機能
Mapコントロールを初期化すると、CenterChangedとZoomLevelChangedイベントが一度トリガーされますので、Mapコントロールの初期化でこの2つのイベントがトリガーされたときにコードが正しく処理されていることを確認します.注意LatitudeプロパティとLongitudeプロパティでCenterを設定しないでください.GeoCoordinateオブジェクトを作成して設定する必要があります.
Mapのプロパティを直接設定して地図を調整すると、地図の変化が非常に硬くなり、SetViewで地図を調整すると、スムーズなアニメーション効果で地図の変化を示すことができます.
次のプロパティは、SetViewメソッドで調整できます.
ReverseGeocodeQuery
GeocodeQuery
RouteQuery
File:MapSample.zip
コードの例
ソースファイル:
Media:MapSample.zip
テストベース
SDK: Windows Phone SDK 8.0
互換性
プラットフォーム:Windows Phone 8 and later
Windows Phone 8
文章
から
Xinx Gong
30 Nov 2012で作成
最後に
hamishwillee
26 Jun 2013で編集
Contents
1地図コントロール
1.1地図表示
1.2地図の中心点と拡大・縮小比を指定する
1.3用Map.SetViewダイナミック調整マップ
1.4地図作成モード
1.5地図色モード
1.6ランドマークと歩行者の特性を表示する
2地図サービス
2.1緯度によるアドレス情報の検索
2.2ある場所の経緯を探す
2.3路線計画
3オフラインマップ管理
4サンプルコードダウンロード
マップコントロール
WP 8では,新しいMapAPIsを用いて地図ベースのアプリケーションを開発することができ,位置や検索機能を含めることができる.WP 8で使用するのはノキア地図、WP 7である.1の中のBing地図は依然としてサポートされているが、使用は推奨されず、すでにBing地図を使用するWP 7と互換性のために使用されているだけである.1アプリケーション.
地図を表示
WP 8ではMapコントロールを使用して地図を表示します.使用する前に、次のことに注目する必要があります.
1.Mapコントロールとサービスで使用するnamespace
Microsoft.Phone.Map
2.XAMLファイルでMapコントロールを使用するために必要なxmlns宣言
xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
3.WMAppManifest.xmlにID_を追加する必要がありますCAP_MAP機能
地図の中心点とスケール比を指定します。
Mapコントロールを初期化すると、CenterChangedとZoomLevelChangedイベントが一度トリガーされますので、Mapコントロールの初期化でこの2つのイベントがトリガーされたときにコードが正しく処理されていることを確認します.注意LatitudeプロパティとLongitudeプロパティでCenterを設定しないでください.GeoCoordinateオブジェクトを作成して設定する必要があります.
MapでSetViewダイナミック調整マップ
Mapのプロパティを直接設定して地図を調整すると、地図の変化が非常に硬くなり、SetViewで地図を調整すると、スムーズなアニメーション効果で地図の変化を示すことができます.
次のプロパティは、SetViewメソッドで調整できます.
GeoCoordinate center:
double zoomLevel:
double heading: , 0-360 。
double pitch: , 0-180 。
LocationRectangle boundingRectangle: 。
MapAnimationKind animationKind: 。
マップパターン
MapCartographicMode.Road: 2D ( )。
MapCartographicMode.Aerial: 。
MapCartographicMode.Hybrid: 。
MapCartographicMode.Terrain: 3D , , 。
マップカラーモード
MapColorMode.Light:
MapColorMode.Dark:
ランドマークと歩行者プロパティの表示
: Map LandmarksEnabled true。
Map ZoomLevel 7 。
: Map PedestrianFeaturesEnabled true。
Map ZoomLevel 16 。
地図サービス
緯度によるアドレス情報の検索
ReverseGeocodeQuery
ReverseGeocodeQuery reverseGeocodeQuery = null;
if (reverseGeocodeQuery == null || !reverseGeocodeQuery.IsBusy)
{
reverseGeocodeQuery = new ReverseGeocodeQuery();
reverseGeocodeQuery.GeoCoordinate = new GeoCoordinate(39.92, 116.46);
reverseGeocodeQuery.QueryCompleted += reverseGeocodeQuery_QueryCompleted;
reverseGeocodeQuery.QueryAsync();
}
private void reverseGeocodeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<IList<MapLocation>> e)
{
if (e.Error == null)
{
...
}
}
ある場所の経緯を調べる
GeocodeQuery
GeocodeQuery geocodeQuery = new GeocodeQuery();
geocodeQuery.SearchTerm = searchTerm;
// Can search with a nearby coordinate, or ignore the parameter.
geocodeQuery.GeoCoordinate = nearbyCoordinate == null ? new GeoCoordinate(0, 0) : nearbyCoordinate;
geocodeQuery.QueryCompleted += geocodeQuery_QueryCompleted;
geocodeQuery.QueryAsync();
private void geocodeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<IList<MapLocation>> e)
{
if (e.Error == null)
{
...
}
}
せんけいかく
RouteQuery
RouteQuery routeQuery = new RouteQuery();
// TravelMode: Driving or Walking.
routeQuery.TravelMode = TravelMode.Driving;
// List<GeoCoordinate>: List of geocoordinates representing the route.
routeQuery.Waypoints = route;
routeQuery.QueryCompleted += routeQuery_QueryCompleted;
routeQuery.QueryAsync();
private void routeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<Route> e)
{
if (e.Error == null)
{
...
}
}
オフラインマップ管理
MapDownloaderTask task = new MapDownloaderTask();
task.Show();
サンプルコードのダウンロード
File:MapSample.zip