2009-10-10 43 views
0

你好所有的iPhone开发人员,找到最近的地方iPhone

我正在开发一个iPhone应用程序。

在这个应用程序中,我想查找与iPhone设备上当前CLLocation相关的最近位置。

我目前有一个数据库在不同的服务器。

我正在通过.NET Web服务访问它。

在用于测试目的的数据库中,我创建了一些记录,其中包含我从谷歌地图中获取的经纬度字段。

现在,我的问题是:

我怎么能确定的是,在数据库中的位置就在附近的当前位置(范围kelometers内​​)?

我有我的选择如下:

  • 如果

    • 我一定要得到一个地址基础,currentLocation.latitude和 currentLocation.longitude并把它传递给 服务我在那里比较它 与可用地址(我有 阅读某处“地理编码”)。

    否则,如果

    • 我可以直接传递纬度和经度到Web服务 做(什么类型我都希望一些 建议,如果任何人知道)一些 计算存在,并给回到 最近的地方数据回iPhone。

    其他

    或该解决方案是完全合乎逻辑的 ,如果任何人有解决方案 reagrding它还是一个教程那么 将是有益的。

+1

是这些答案的帮助? http://stackoverflow.com/questions/524077/iphone-development-locate-address-from-users-position – jao 2009-10-10 10:09:05

+0

thans它给了我一些方向 – harshalb 2009-10-10 10:22:27

回答

3

这是真的,有很多的反向地理编码服务在那里(谷歌,雅虎,GeoNames的,等等),从纬度/经度对转换成街道地址。

但是,如果你的数据库中已经有纬度/经度对,那么我认为你不需要转换成街道地址。如果所有点都以纬度/经度表示,则计算距离要容易得多,您可以使用Haversine formula

事实上,如果您的数据库本地支持空间类型(例如,MS SQL 2008 appears to),那么您可以将该计算推入数据库层,而不必担心它。这对我来说似乎是正确的做法:让您的iPhone应用程序向您的Web服务发送纬度/经度,并让数据库计算最近的兴趣点。

+0

好,很好格式化答案。保持。 – harshalb 2009-10-12 07:07:10