使用ARCore Geospatial API可以轻松地检测出您的相机指向的建筑物。首先,您需要在Android应用程序中导入ARCore SDK并获取Google Play服务中的ARCore服务,在代码中添加以下依赖项:
dependencies {
implementation 'com.google.ar:core:1.18.0'
}
然后,您可以使用以下代码获取相机正在指向的建筑物:
val hitResultList = frame.hitTest(screenX, screenY, HitResultPlaneType.AR_FEATURE_POINT)
for (hitResult in hitResultList) {
if (hitResult.trackable is Landmark) {
val landmark = hitResult.trackable as Landmark
val landmarkMetadata = landmark.landmarkMetadata
if (landmarkMetadata != null) {
val building = landmarkMetadata.getString(LandmarkMetadata.TYPE_BUILDING_NAME)
Log.d(TAG, "当前指向的建筑物是:$building")
}
}
}
在这段代码中,我们使用ARCore框架的HitTestResult
方法来检测相机指向的空间空间点对象。如果返回的Trackable
是Landmark
,则可以获取LandmarkMetadata
元数据,这是用于描述识别出的地标的信息。如果元数据不为空,则可以通过键值名为LandmarkMetadata.TYPE_BUILDING_NAME
的属性获取当前指向的建筑物名称。