C# 值不在预期范围内。在Bing地图中
我正在尝试将Lattude、longitude从我的web服务发送到bing地图,这是我的地图代码:C# 值不在预期范围内。在Bing地图中,c#,windows-runtime,win-universal-app,bing-maps,C#,Windows Runtime,Win Universal App,Bing Maps,我正在尝试将Lattude、longitude从我的web服务发送到bing地图,这是我的地图代码: <Grid> <Grid.Resources> <CollectionViewSource x:Name="LocationList"/> <DataTemplate x:Key="LogoTemplate"> <bm:Pushpin> <bm:Map
<Grid>
<Grid.Resources>
<CollectionViewSource x:Name="LocationList"/>
<DataTemplate x:Key="LogoTemplate">
<bm:Pushpin>
<bm:MapLayer.Position>
<bm:Location Latitude="{Binding local_latit}" Longitude="{Binding local_longi}"></bm:Location>
</bm:MapLayer.Position>
</bm:Pushpin>
</DataTemplate>
</Grid.Resources>
<bm:Map Credentials="...">
<bm:Map.Children>
<bm:MapItemsControl x:Name="ListOfItems"
ItemsSource="{Binding Source={StaticResource LocationList}}"
ItemTemplate="{StaticResource LogoTemplate}">
</bm:MapItemsControl>
</bm:Map.Children>
</bm:Map>
</Grid>
我得到一个例外:
“值不在预期范围内。”
有什么需要帮忙的吗,请把地图上的格度,兰格度
谢谢你的帮助
更新:
这是lattituden的值,调试时的经度:
本地时间和本地时间的值是什么 获取异常时检查这些值 经度是由它的性质限制在-180至180和纬度-90至90
一个常见的错误是意外地交换了经度和纬度本地经度和本地经度的值是多少 获取异常时检查这些值 经度是由它的性质限制在-180至180和纬度-90至90
一个常见的错误是意外地交换了经度和纬度CollectionViewSource需要一个集合而不是一个实例。将RootObject添加到集合(例如列表)将解决此问题。CollectionViewSource需要一个集合,而不是一个实例。将RootObject添加到集合(例如列表)将解决此问题。在您的另一篇文章中,您提供了一些正在使用的示例数据。在我的回答中,我提到,在一些本地和本地长值中似乎有一些无效值。纬度值应介于-90和90之间,经度值应介于-180和180之间。如果这些值超出此范围,您将看到上面提到的错误 在您的更新中,您提供了一个具有有效值的映像,但在您的另一篇文章中,您提供了一个数据数组,其中包含无效值
这就是说,现在查看您的Page_Load方法,我看到您正在将LocationList.Source值设置为等于单个位置,但您的XAML需要您的local_latit和local_longi值。此外,源应该是一个ObservableCollection,而不是单个Location对象。在您的另一篇文章中,您提供了一些正在使用的示例数据。在我的回答中,我提到,在一些本地和本地长值中似乎有一些无效值。纬度值应介于-90和90之间,经度值应介于-180和180之间。如果这些值超出此范围,您将看到上面提到的错误 在您的更新中,您提供了一个具有有效值的映像,但在您的另一篇文章中,您提供了一个数据数组,其中包含无效值
这就是说,现在查看您的Page_Load方法,我看到您正在将LocationList.Source值设置为等于单个位置,但您的XAML需要您的local_latit和local_longi值。此外,源应该是一个ObservableCollection,而不是单个Location对象。我认为纬度/经度值是有效的,所以为什么我会得到这个例外我认为纬度/经度值是有效的,那么为什么我会得到这个例外呢?好的,谢谢rbrundritt爵士的解释,我会尝试发送一份地点列表,而不是一个地点。好的,谢谢rbrundritt爵士的解释,我会尝试发送一份地点列表,而不是一个地点
private async void Page_Loaded(object sender, RoutedEventArgs e)
{
UriString3 = "URL";
var http = new HttpClient();
http.MaxResponseContentBufferSize = Int32.MaxValue;
var response = await http.GetStringAsync(UriString3);
var rootObject = JsonConvert.DeserializeObject<MyApp.Models.RootObject>(response);
var se = new Location();
se.Latitude = rootObject.local_latit;
se.Longitude = rootObject.local_longi;
LocationList.Source = se; //exception at this line
}
public class RootObject
{
.....
public double local_longi { get; set; }
public double local_latit { get; set; }
}