我有多个位置在我的Bing Map WPF上通过经纬度坐标指针,我知道如何测量两个设置位置之间的距离并一次显示所有引脚。但为了提高效率并减少地图上所需的延迟,我想只显示固定点一定距离内的点。
例如Big ben at 51.500733,-0.124658是我的固定点,如果我的另一个位置在半径5英里内,例如伦敦眼51.503364,-0.119522它会显示但是半径范围外的任何东西都不会。当前,当用户单击我的一个点然后显示图钉时,该过程被激活。目前,我专注于在VB中使用If语句来过滤掉设置位置的一系列经度和纬度坐标的理论。
任何改进我的方法或不同方法的想法都会非常有益。
答案 0 :(得分:2)
这是一项非常常见的任务,可以通过许多不同的方式完成。这一切都取决于您的数据存储位置。如果将数据存储在Bing Spatial Data Services中,它会将其公开为空间REST服务,为您提供附近的搜索功能。你可以在这里找到一篇好文章:https://msdn.microsoft.com/en-us/library/dn948092.aspx
如果它托管在数据库中,请查看此博客文章,了解如何创建空间REST服务以公开您的数据。由于这是一个WPF应用程序,您可以跳过服务部分并将大部分代码直接添加到您的WPF应用程序中。
https://blogs.bing.com/maps/2013/08/05/advance-spatial-queries-using-entity-framework-5/
如果您的数据位于列表中,您只需循环浏览并抓住中心点一定距离内的所有位置。