0

プロジェクトを WP7 から WP8 に転送しようとしています (したがって、Bing Maps から Nokia の組み込みコントロールに更新しています)。

もともと、MapPolygon を作成した GeoCoordinates の束 (20) に基づいてマップ領域を境界付け、MapPolygon の Opacity プロパティを変更してから、それを子としてマップ コントロールに追加しました。

Nokia の Map Control に移行しようとしているときに、GeoCoordinates を使用して作成したい Polygon の領域を指定する方法がないように思えますが、代わりに Points を使用する必要があります。つまり、マップをズームインおよびズームアウトしても、ポリゴンは画面上で同じ形状のままです。確かに、ズームイン/ズームアウトしても、ポリゴンを同じ比例サイズのままにする方法が必要ですか?!?!?

Bing Maps を引き続き使用できることはわかっていますが、非推奨であるため、新しい Nokia マッピングに移行したいと考えています。

新しいマッピングを作成するために使用しようとしているコードは次のとおりです。

//Creating a Polygon
Polygon MyPolygon = new Polygon();


MyPolygon.Points.Add(new Point(2, 0));
MyPolygon.Points.Add(new Point(22, 0));
MyPolygon.Points.Add(new Point(2, 40));
MyPolygon.Stroke = new SolidColorBrush(Colors.Black);
MyPolygon.Fill = new SolidColorBrush(Colors.Black);
MyPolygon.SetValue(Grid.RowProperty, 1);
MyPolygon.SetValue(Grid.ColumnProperty, 0);
MyPolygon.Opacity = 0.5;

//Adding the Polygon to the Grid
//MyGrid.Children.Add(MyPolygon);

//Creating a MapOverlay and adding the Grid to it.
MapOverlay MyOverlay = new MapOverlay();
MyOverlay.Content = MyPolygon;

MyOverlay.GeoCoordinate = new GeoCoordinate(49.3393850118753, -0.4569707717895518);

//MyOverlay.PositionOrigin = new Point(0.99, 0.99);

//Creating a MapLayer and adding the MapOverlay to it
MapLayer MyLayer = new MapLayer();
MyLayer.Add(MyOverlay);

map1.Layers.Add(MyLayer);

ポリゴンをグリッドに追加してからグリッドをオーバーレイに追加できることは理解していますが、それでも問題は解決しません。しかし、ご覧のとおり、GeoCoordinates を追加する方法はありません... ポイントのみです。

どんな助けでも大歓迎です!

4

1 に答える 1

0

いくつかの数学を使用する必要がありますが、私が見つけた最も簡単な方法は、ActualWidth および ActualHeight マップ プロパティを利用して ConvertViewportPointToGeoCoordinateを使用して、マップ ビューポートの座標を取得することでした。これは、中心に関連するすべてのもの、または比率を維持するために使用したい数学を取得できるということでした。

GeoCoordinates を取るMapPolylineを描画に 使用することもできます。http://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.mappolyline.aspx

その場合、ほとんどすべてのシナリオでカバーする必要があります。

それが役立つことを願っています???

//ジェド

于 2012-11-16T22:20:41.250 に答える