Мое приложение Bing Map в конечном итоге падает при перетаскивании или увеличении масштаба. Проверено на эмуляторе и устройстве.
Я установил октябрьское обновление.
Привязка MapItemsControl к ObservableCollection.
Когда приложение запускается, контакты были загружены и видны.
При устранении неполадок я определяю, что приложение не будет зависать, если кнопки на карте находятся в той же общей области. Пример,
addPin("40.78184126814031", "-73.97712707519532");
addPin("40.74569634433956", "-73.96717071533204");
addPin("40.7117682299881", "-74.0125322341919");
addPin("40.75777392583087", "-73.96950960159302");
Но если булавки разложены - приложение вылетает, когда пользователь увеличивает один конкретный булавку и / или перетаскивает карту. Пример,
addPin("42.35960626034072", "-71.09212160110473");
addPin("51.388066116760086", "30.098590850830067");
addPin("48.17972265679143", "11.54910385608672");
addPin("40.28802528051879", "-76.65668606758117");
Не уверен, нужен ли код проекта - я предполагаю, что есть какая-то концепция, о которой я просто не знаю.
Любые предложения - я весь слух.
След стека ниже.
Спасибо
Unspecified error
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.UIElement_HitTestPoint(UIElement element, Point ptHit)
at System.Windows.UIElement.HitTest(Point point)
at System.Windows.Media.VisualTreeHelper.FindElementsInHostCoordinates(Point intersectingPoint, UIElement subtree)
at Microsoft.Phone.Controls.Maps.Core.TouchHelper.<InputHitTest>d__0.MoveNext()
at Microsoft.Phone.Controls.Maps.Core.TouchHelper.HitTestAndRaiseDownEvent(UIElement root, TouchPoint touchPoint)
at Microsoft.Phone.Controls.Maps.Core.TouchHelper.TouchFrameReported(Object sender, TouchFrameEventArgs e)
at System.Windows.Input.Touch.OnTouch(Object sender, TouchFrameEventArgs e)
at MS.Internal.JoltHelper.RaiseEvent(IntPtr target, UInt32 eventId, IntPtr coreEventArgs, UInt32 eventArgsTypeIndex)
Я подумал, что лучше всего включить код - запуск этого приложения и увеличение масштаба при сбоях приложения - спасибо
PINDATA класс
namespace BugCrash.models
{public class PinData{public GeoCoordinate PinLocation { get;set; }}}
MainPage.xaml.cs
namespace BugCrash
{
public partial class MainPage : PhoneApplicationPage
{
private ObservableCollection<PinData> _pinsA = new ObservableCollection<PinData>();
public ObservableCollection<PinData> PinsA { get { return this._pinsA; } }
// Constructor
public MainPage()
{
InitializeComponent();
this.DataContext = this;
myMap.Center = new GeoCoordinate(40.74569634433956, -73.96717071533204);
myMap.ZoomLevel = 4;
MessageBox.Show(loadAPins_fromString());
}
//ADD PIN TO COLLECTION
private void addPin(String lat, String lon)
{
PinData tmpPin;
tmpPin = new PinData() { PinLocation = new GeoCoordinate(System.Convert.ToDouble(lat), System.Convert.ToDouble(lon)) };
_pinsA.Add(tmpPin);
}
//LOAD PINS ONE BY ONE
private string loadAPins_fromString()
{
//BAD
addPin("42.35960626034072", "-71.09212160110473");
addPin("51.388066116760086", "30.098590850830067");
addPin("48.17972265679143", "11.54910385608672");
addPin("40.28802528051879", "-76.65668606758117");
return "A PINS LOADED - STRING";
}
}
}
MainPage.xaml
<phone:PhoneApplicationPage
x:Class="BugCrash.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="False"
xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps">
<Grid x:Name="LayoutRoot" Background="Transparent">
<!--RESOURCES-->
<Grid.Resources>
<my:ApplicationIdCredentialsProvider ApplicationId="XX" x:Key="MyCredentials"/>
</Grid.Resources>
<my:Map Height="768"
Name="myMap"
VerticalAlignment="Top" Width="480"
CredentialsProvider="{StaticResource MyCredentials}">
<my:Map.Mode>
<my:AerialMode ShouldDisplayLabels="True" />
</my:Map.Mode>
<my:MapItemsControl
x:Name="GroupAPins"
ItemsSource="{Binding PinsA}"
>
<my:MapItemsControl.ItemTemplate>
<DataTemplate>
<my:Pushpin Location="{Binding PinLocation}" Width="60" Height="55" Content="PIN">
</my:Pushpin>
</DataTemplate>
</my:MapItemsControl.ItemTemplate>
</my:MapItemsControl>
</my:Map>
</Grid>
</phone:PhoneApplicationPage>