开发一个空间感知应用程序在任何平台上都不是一件小事。它需要仔细规划和建筑设计UP FRONT,否则你会发现自己做了很多“极端编程”(大量的重构)。为了开发一个空间感知应用程序,您将需要几个项目:
- 熟悉地图API。 Apple的MapKit API很好,但还有其他诸如 Mapbox 等提供其他服务,例如
离线缓存,自定义底图等
- 自定义底图:您在这里看到的底图肯定是自定义作业,可能不是开源的,所以您需要提出来
与你自己的一个。不幸的是,每个地图API都有不同
接近这个,所以你需要做一些研究来确定
正确的API解决方案。
- 地图功能:您需要了解如何向地图添加功能。有些API称这些注释,而其他API只是调用
它们的特点(如ESRI)。在任何一种情况下,您都需要生成
您自己的要素几何使用核心位置 API以及地图API使用的任何组件。您还需要为这些注释创建自定义图形,
除非你能在公共领域找到合适的东西。如果你
打算添加折线(用于方向)或多边形(以突出显示
区域)您还需要定义自己的自定义符号系统(行
颜色,宽度,填充颜色等)。同样,并非每个API都使用该术语
用于描述这些细节的符号系统,但希望你能得到这个想法。
- 数据存储:您需要决定如何存储和检索mapview的数据。您可以在线存储所有内容
自定义Web服务。您还可以使用 Parse API之类的内容
如果您没有自己的Web服务资源。
或者,您可以将所有内容存储在 SQLite 中
数据库或使用核心数据。在任何一种情况下,你都需要一个
计划以有效的方式查询位置数据。 SQLite的
支持 R * Tree 索引,这是存储几何体的好方法
边界框(信封)信息,但您仍需要滚动自己的INSERT和SELECT查询。很可能你需要想出两者的组合。
- 学习语言:总体而言,您必须学习地图API的语言。你熟悉它至关重要
空间感知应用程序的语言,包括基础知识
定位技术,如果你打算在这方面取得成功
项目。我建议开始对iOS进行一些研究
MapKit API,也许是 Mapbox 等开源解决方案。即使您不打算在您的应用中使用它,学习 geoJSON 也不是一个坏主意。它非常简单,可以帮助您快速学习很多关于空间技术的知识。
正如您所看到的,在空间感知应用程序中有很多事情,这个列表只是一个起点。我并不是想阻止你离开你的目标,而是要意识到这不是一个“拖放”的项目。