DEV Community

Ting
Ting

Posted on

ARGeoTrackingConfiguration 苹果街景定位支持地区

SEO: Geotracking, coverage, Visual Positioning System (VPS), ARCore, Geospatial API, ARKit, AR, 街景定位, 视觉定位

太长不看:

  1. 调用官方 checkAvailability 方法
  2. 通过苹果地图 Look Around 来确定街景地图覆盖地区
  3. 查询苹果图像收集网站列表

Apple 在 ARKit 4 时期推出了基于街景的 AR 定位服务,通过综合摄像头采集的图像、设备 GPS、以及所在地的地图信息,来更加精确地确定当前所处的位置。因为街景地图都经过了“地理配准”——即所有街景图可以被认为其对应的地理位置坐标都是准确的,因此,通过比较摄像头画面与街景地图,即可通过视觉算法匹配到摄像头所处的位置坐标。

在使用这项服务时,一定会用到 ARGeoTrackingConfiguration 这个类。其中,它涉及到判断设备当前所处位置是否支持街景定位服务。在这项功能刚推出的2020年左右,ARGeoTrackingConfiguration 文档的 Supported areas and cities 里面列出了当时该服务支持的区域。当时,几乎只有美国和世界几个主要城市的核心区域支持该项服务,如果没记错的话,包括纽约、旧金山、洛杉矶、芝加哥、巴黎、新加坡等地。随着时间的推移,支持的地点数量逐渐变多。直到2023年末的一天,我在查看文档时突然发现,支持城市列表不见了!

直到今天,许多有关的文档仍指向这个文档的列表

For a list of supported areas and cities, see ARGeoTrackingConfiguration.

然而,在最初的城市列表无处寻觅时,应该如何确定某个地区是否支持街景定位呢?

其实,这个列表逐渐与“苹果图像收集”项目合为一体,其网址在:https://maps.apple.com/imagecollection 。可以看到,经过几年的发展,苹果地图逐渐羽翼丰满,几乎所有美国主要城市都有街景地图支持了。

另外,文档里提供了两个 checkAvailability 方法,用来确定当前设备位置/某一坐标是否支持街景定位。

class func checkAvailability(completionHandler: @escaping (Bool, (any Error)?) -> Void)
Enter fullscreen mode Exit fullscreen mode

最后,苹果地图如今也支持街景地图功能了。点击左下角望远镜标识的“Look Around”功能,就能查看附近的街景地图。理论上,支持街景地图的街道也应支持街景定位。

未完待续……

Top comments (0)