私は、多数のマーカーをマップする Windows Phone 7.5 アプリケーションに取り組んでいます。
私のコードは OnNavigatedTo で実行され、次のようになります。
if (points != null && points.Any())
{
var markers = new List<GeoCoordinate>();
foreach (var point in points)
{
TextBlock textBlock = new TextBlock();
textBlock.Text = "...";
textBlock.TextWrapping = TextWrapping.Wrap;
stackPanel1.Children.Add(textBlock);
Pushpin pin = new Pushpin();
pin.Location = new GeoCoordinate(point.Latitude, point.Longitude);
markers.Add(pin.Location);
pin.Content = point.Sequence.ToString();
mapItems.Items.Add(pin);
}
//map1.ZoomLevel = 15; // Tried this as well
map1.SetView(LocationRect.CreateLocationRect(markers));
markers.Clear();
points = null;
}
残念ながら、実際のコントロールの初期ズーム レベルを 15 に設定しているにもかかわらず、SetView はマップ内のすべてのピンに合わせて必要以上にズームアウトしています。ただし、電話の電源を切るか、手動で電源を切ってから再び電源を入れると、地図が完全にズームされます。
SetView を呼び出した後、マップのズーム レベルを正しく更新するために欠けている手順はありますか?
SetView を、この回答の WP7 Bing Maps Zoom level based on Push Pin collection locations のコードに置き換えようとしましたが、期待どおりに機能しません。
コントロール (緯度と経度は実際の値に設定され、リージョン マーカーが追加される中心になります):
<my:Map Height="311" HorizontalAlignment="Left" Margin="10,10,0,0" Name="map1" VerticalAlignment="Top" Width="440" CredentialsProvider="..." ZoomLevel="15">
<my:Map.Center>
<my1:GeoCoordinate Altitude="NaN" Course="NaN" HorizontalAccuracy="NaN" Latitude="0" Longitude="0" Speed="NaN" VerticalAccuracy="NaN" />
</my:Map.Center>
<my:MapItemsControl Name="mapItems" />
</my:Map>
ありがとう!