对大型数据集进行地理编码以在 iPhone 应用程序中使用

发布于 2024-11-16 11:46:40 字数 390 浏览 2 评论 0原文

问题:我有一个包含大约 500000 个美国地址的大型 SQLite 数据库,我将其包含在我的 iPhone 应用程序中。我想在 MKMapView 上显示距离给定位置最近的 10 个作为 MKAnnotations。

选项 1:通过邮政编码搜索数据库以获取较少数量的地址。只需选择前 10 个并对它们进行在线地理编码,然后显示在地图上。

选项 2:对整个数据库进行离线预地理编码,将经纬度存储在 sqlite 数据库中。按邮政编码搜索。使用 CLLocation 查找返回的数据中最接近的 10 个。

还有其他我没有想到的选择吗?我目前正在研究选项 2。我从 OpenStreetMaps 下载了 Planet.OSM 数据库。但我有点迷失了下一步该做什么。我可能需要设置 Nominatim 的本地实例?不太确定。

Problem: I have a large sqlite database of roughly 500000 US addresses that I include in my iPhone application. I want to show the closest 10 to a given location as MKAnnotations on a MKMapView.

Option 1: Search database by zipcode to get a smaller number of addresses. Just choose the first 10 and geocode them online, display on map.

Option 2: Pre-geocode entire database offline, storing lat,lon in the sqlite db. Search by zipcode. Use CLLocation's to find the closest 10 in the data returned.

Is there any other option I haven't thought of? I am currently looking into option 2. I downloaded the Planet.OSM database from OpenStreetMaps. But I got a little lost on what to do next. I probably need to setup a local instance of Nominatim? Not really sure.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文