2

新しいWindowsPhone8マップコントロールを使用していますが、問題が発生しました。マップの境界のLocationRectangle、つまり緯度スパンと経度スパンを取得する必要があります。

Bing Mapsコントロールを使用すると、次のことができます。

 LocationRect bounds = map.Bounds;

...ただし、この新しいコントロールには関連するフィールドがないようです。誰か助けてもらえますか、それともさまざまなズームレベルをリバースエンジニアリングして、中心点、ズームレベル、ピクセルの高さ/幅に基づいて計算する必要がありますか?

4

2 に答える 2

8

次のようなビューポート変換メソッドを使用できます。

GeoCoordinate topLeft = yourMapInstance.ConvertViewportPointToGeoCoordinate(new Point(0, 0));
GeoCoordinate bottomRight = 
yourMapInstance.ConvertViewportPointToGeoCoordinate(new Point(mapSize.Width, mapSize.Height));

return LocationRectangle.CreateBoundingRectangle(new[] { topLeft, bottomRight });

おそらく、mapControlインスタンスのrenderSizeを直接使用できますが、実行時に正しいサイズを確認するために、「SizeChanged」イベントをリッスンすることをお勧めします。また、mapsize値が0またはInfiniteisでないことを確認することもおそらく良い考えです。

于 2012-11-02T09:52:39.603 に答える
0

明確にするために、WP7用に既に大規模なアプリを作成している場合は、WP8で元のBing Mapsを引き続き使用できます(非推奨になっていますが)。
WP8用のBingMapsを含むライブラリは次の場所にあります。

C:\ Program Files(x86)\ Microsoft SDKs \ Windows Phone \ v8.0 \ Libraries

これはあなたにとって実行可能な解決策ですか、それともとにかく新しいマップに切り替えたいですか?

于 2012-11-01T21:36:02.563 に答える