React native 带有React Native的增强现实(摄像机上方的兴趣点)

React native 带有React Native的增强现实(摄像机上方的兴趣点),react-native,augmented-reality,React Native,Augmented Reality,我正在为Android和iOS开发一个应用程序,通过摄像头显示兴趣点。现在ARkit和ARcore的兼容性很差 你能推荐一些图书馆来做这个吗?如果它有一个例子,更好!我知道viro media,但我不知道如何使用该库实现这一点 我不想要3D模型,只是相机上的标记,类似于附件图像 要使用Viro React实现这一点——通常在AR中——诀窍是认识到有两个坐标系: 设备的本地坐标系,我们称之为“AR空间”。在Viro中,当应用程序启动时,它以用户的初始位置为中心,单位为米 地理坐标(纬度和经度) 要

我正在为Android和iOS开发一个应用程序,通过摄像头显示兴趣点。现在ARkit和ARcore的兼容性很差

你能推荐一些图书馆来做这个吗?如果它有一个例子,更好!我知道viro media,但我不知道如何使用该库实现这一点

我不想要3D模型,只是相机上的标记,类似于附件图像


要使用Viro React实现这一点——通常在AR中——诀窍是认识到有两个坐标系:

  • 设备的本地坐标系,我们称之为“AR空间”。在Viro中,当应用程序启动时,它以用户的初始位置为中心,单位为米

  • 地理坐标(纬度和经度)

  • 要定位覆盖,必须将内容从地理坐标转换为AR空间。这是一个分两步的过程。首先,将球面地理坐标投影到二维平面上——这非常适合。然后根据设备的初始投影位置平移投影坐标

    设备的初始投影位置可以通过投影其初始地理位置来推导。在Viro React中,当用户启动应用程序时,您可以使用抓取

    最后,您需要对用户的方位进行类似的转换:在AR空间中从指南针方向转换为设备方向

    要使其正常工作,您可能必须弄清楚如何处理不准确的地理位置查找(例如,如果从设备检索到的位置不准确,会发生什么情况),并且可能还必须考虑漂移:随着时间的推移,两个坐标系可能会开始不同步


    最后一部分,创建信息卡,使用Viro很容易——您可以使用文本预烘焙图像并使用ViroImage,或者如果卡需要更具动态性,可以使用ViroFlexView。

    我也对这个感兴趣,我正在尝试ViroReact

    我发现当lat和long被转换为x-y值时,有点难以理解如何实现这一点。z值应该是什么

    假设您将纬度坐标[59,10]作为要显示[59,11]相对于您的位置的用户位置。如何在虚拟场景中构建它

    <ViroNode position={ **userLocationFromLatLonCartesian** }>
       <ViroBox position={ **poiLocationFromLatLonToCartesian** }/>
    </ViroNode>
    
    
    
    那么,如何计算比例、位置和旋转,使对象可见


    似乎是一个库,可以提供从latlon到x-y值的转换

    像proj4js这样的库非常棒,它将为您提供投影坐标,对应于Viro坐标系中的x和Z(请记住,x从右向左,Z进入和离开屏幕)。Y坐标是对象的“高度”,可以根据需要设置为任意值。同样,比例取决于要渲染的对象和所需内容。对于旋转,如果你渲染标签,我会使用公告牌,这样标签总是面对用户;相反,编写一个函数将latlong转换为Viro坐标:poiProjectedLocation=proj4j(projection,poiLatLong)userProjectedLocation=proj4j(projection,userLatLong)poiviroords=poiLatLong-userLatLong,然后将ViroBox的位置设置为poiviroords。我想这样就可以了。你好@rajavani,我正在尝试做一件类似的事情,我有GeoloLocation API中的lat,lon(我假设是WGS84坐标)。我想转换为ViroCoords,但我不知道在proj4j(projection,poiLatLong)中应该使用哪种类型的投影。您能提供一些帮助吗?@A.Wali我们正在使用proj4('EPSG:3857')。前进(坐标)效果很好;)@Rajavani您能详细说明一下“POIVROJECTEDLOCATION=proj4j(投影,poiLatLong)userProjectedLocation=proj4j(投影,userLatLong)POIVIROCORDS=poiLatLong-userLatLong”吗?coords将是一个数组,对吗?那怎么减去呢?也应该使用坐标吗?这不应该使用预测值吗?有没有可能的例子?