2012-09-06 110 views
0

我正在开发地理定位应用程序。我想在我的地图上显示(例如)离我目前位置最近的商店。我在我的db中为每个商店保存了经纬度,我拥有用户的当前位置。现在我想从我的缩放中获取最近的位置。如何获得最近的职位

我不想挑选他们所有的原因,如果我有10000个职位将他们添加到数据库(就像也从数据库中获取他们)将很长,并消耗CPU。那就是为什么我只想挑选那些可以在地图上显示的东西。

地图以我目前的位置为中心。如何获得他们?如何计算这个?

+0

如果你有地图视图的范围,除了“使用'<来过滤坐标”之外,你还需要什么? –

+0

很多。如果我目前的本地化是51.133731/22.111321,则导致原因如果我想从1公里的地区选择职位,我如何知道1公里的差距? – Fixus

+0

您既可以计算实际距离,也可以高估并使用112km /度(这大致是纬度或经度的最大公里数)。如果您只需要快速过滤大型数据集,则使用估计值可能足够好。计算实际数学并不特别棘手,但这个问题会更适合[GIS StackExchange站点](http://gis.stackexchange.com/)。 –

回答

1

您可以使用Haversine formula来计算任意两点经纬度之间的距离。您可以建立一个存储过程(即使是CLR stored procedure),它可以获取当前位置和距离并计算该区域内的所有点。