我正在处理Android和Android的应用程序iOS显示相机的兴趣点。 ARkit& ARcore现在的兼容性很差。
你能推荐我一些图书馆吗?如果附带一个例子,那就更好了!我知道viro-media,但我不明白如何使用该库。
我不想要3D模型,只需要相机上的标记,类似于附件图像。
答案 0 :(得分:4)
要使用Viro React执行此操作 - 在AR中一般 - 诀窍是要识别有两个坐标系:
您设备的本地坐标系,我们将其称为“AR空间”。在Viro中,它以应用程序启动时用户的初始位置为中心,以米为单位。
地理坐标(纬度和经度)。
要定位叠加层,您必须将内容从地理坐标转换为AR空间。这是一个两步过程。首先将球面地理坐标投影到2D平面上 - Geolocation module对此非常有用。然后通过设备的初始投影位置转换投影坐标。
设备的初始投影位置可以通过预测其初始地理位置得出。在Viro React中,您可以使用{{3}}在用户启动应用时获取此信息。
最后,您需要对用户的方位进行类似的转换:在AR空间中从指南针方向转换为设备方向。
为了使其运作良好,您可能必须弄清楚如何处理不准确的地理位置查找(例如,如果从设备检索的位置不准确会发生什么),并且还可能需要考虑漂移:随着时间的推移,两个坐标系统可能会开始失去同步。
创建信息卡的最后一部分很容易使用Viro - 您可以使用文本预先烘焙图像并使用ViroImage,或者如果卡需要更加动态,您可以使用ViroFlexView。
答案 1 :(得分:1)
我也对这个感兴趣,并且我尝试了ViroReact!
当lat和long已转换为x-y值时,我发现有些难以理解如何使其工作。 z值应该是什么?
我们假设你有lat-lon坐标[59,10]作为你想要显示[59,11]相对于你所在位置的用户位置。如何在ViroARScene中构建它?
<ViroNode position={ **userLocationFromLatLonCartesian** }>
<ViroBox position={ **poiLocationFromLatLonToCartesian** }/>
</ViroNode>
那么如何计算比例,位置和旋转,以便对象可见?
似乎https://github.com/proj4js/proj4js是一个可以提供从latlon到x-y值的转换的库