Tag: 地图

Windows Phone 8 – 如何在地图上显示当前位置

正如标题所示,我正在努力在地图上显示用户的当前位置。 Afaik有两种显示当前用户位置的方法: 在代码中:创建一个椭圆,将其设置为MapOverlay内容,设置MapOverlay的GeoCoordinate,将此叠加层添加到MapLayer并将其添加到地图中 – 但我无法再访问MapOverlay ,因此我无法更改(更新)用户的位置。 有没有办法更新用户位置而不必重绘所有地图图层? XAML和代码:在Windows Phone 7中,我能够将一个Pushpin添加到地图中,让GeoCoordinateWatcher处理PositionChanged事件并将MyLocation.Location设置为当前位置。 如果您不使用Windows Phone Toolkit,似乎无法将Pushpin添加到地图中。 所以我尝试从Windows Phone Toolkit添加Pushpin : xmlns:maps=”clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps” xmlns:maptk=”clr-namespace:Microsoft.Phone.Maps.Toolkit;assembly=Microsoft.Phone.Controls.Toolkit” 但我无法访问MapPage.xaml中的MyLocation图钉(调试器表示它为null )。 我可以使用maptk:Pushpin在地图上显示和更新当前用户位置吗? 在Windows Phone 7中,我可以简单地为图钉创建一个XAML布局,该布局将保存用户位置,如下所示: xmlns:maps=”clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps” 然后我可以添加一个GeoCoordinateWatcher来监听PositionChanged事件并更改MyLocation图钉的Location : void GeoCoordinateWatcher_PositionChanged ( object sender, GeoPositionChangedEventArgs e ) { MyLocation.Location = e.Position.Location; }

Windows Phone – 从远处获取缩放级别

我不擅长数学,所以请帮助我。 我有米的距离,我需要计算缩放级别和中心来映射。 我怎样才能做到这一点? 我从这开始,但现在我完全迷失了: var sCoord = new GeoCoordinate(startPoint.X, startPoint.Y); var eCoord = new GeoCoordinate(latitude, longitude); var distance = sCoord.GetDistanceTo(eCoord); 谢谢

任何人都可以解释为什么C#中的Dictionary 不像STL中的map 那样工作?

去年我第一次开始使用C#编程时,我立即寻找了与STL相同的地图,并学习了Dictionary。 更新了下面的垃圾,我完全错了。 我对STL地图的体验是,当我向它请求值时,我讨厌,如果键不在地图中,它会自动创建值类型(无论其默认构造函数如何)并将其添加到地图中。 我必须在代码中检查这个条件并抛出exception。 字典使整个shebang正确 – 如果键不存在,它会在您请求值时抛出异常,或者如果不是,则自动添加它并且您想要设置该值。 但你们都已经知道了。 我应该在发布之前编写我的unit testing并让自己感到尴尬。 :)他们现在写的! 现在我喜欢Dictionary和all,但是现在最让我烦恼的是,如果键不在Dictionary中,它会抛出KeyNotFoundException。 因此,我总是需要编写这样的代码: Dictionary _mydic; public string this[string key] { get { return _mydic[key]; // could throw KeyNotFoundException } set { if( _mydic.ContainsKey( key)) _mydic[key] = value; else _mydic.Add( key, value); } } 如果键不存在,为什么Dictionary不会自动添加键值对,如STL的映射? 现在有趣的是,在以前的生活中,我曾经生气,因为我经常不得不试图阻止地图这样做。 我想我现在的用例有点不同。

快速算法,找到平面上给定点的x个最近点

我想找到一个快速算法,以便找到平面上给定点的x个最近点。 我们实际上处理的点数不多(1000到100,000之间),但我需要每个点的x最近点。 (其中x通常在5到20之间。) 我需要用C#编写它。 关于用例的更多上下文:这些点是地图上的坐标。 (我知道,这意味着我们并不是在谈论一架飞机,但我希望避免处理投影问题。)最后,有许多其他点靠近它们的点应该用红色显示,点数不要太多靠近它们的点应显示为绿色。 在这两个极端之间,点是颜色梯度。