【发布时间】:2017-08-21 20:39:49
【问题描述】:
我目前正在尝试为传单构建覆盖层。覆盖应该显示 3D 内容(例如建筑物)。但是,我无法将传单地图上的动作与叠加层中场景中的动作保持同步。
到目前为止,画布与地图容器一样大,并且始终覆盖地图(如位置:固定)。为了在用户在地图上平移时四处移动,我想在场景中移动相机(而不是移动所有几何图形)。对于位置,我使用与lat:0, lng:0 的距离,因为 THREE 似乎很难处理分形位置(例如,当使用十进制 gps 坐标时)。不幸的是,我正在努力寻找正确的公式来获得相机的正确位置 (x,y,z)。
到目前为止我的尝试:
https://jsfiddle.net/hg474d6r/7/(_handleMove 函数是相关的)
黑点是中心,供您参考。红点应该保持静态 - 相对于地图 - 它不是。
那么我的公式/“计算”中是否只是一个小问题,或者这种方法根本不起作用?
更新:更新小提琴进度等等
【问题讨论】:
-
嗨,我正在解决基本相同的问题..你真的找到解决方案了吗?
-
@jaronimoe 不,我没有,而是改用 mapbox gl。它支持例如开箱即用的挤出对于我的用例来说已经足够了。 mapbox 还允许开箱即用地俯仰和倾斜。您仍然可以尝试用三个 js 层覆盖 mapbox(当然会遇到与传单相同的问题)
-
实际上,我不需要任何 3D 功能,而是需要 GPU 的强大功能来进行大规模数据可视化 - 因此可以绘制许多图元,如点和线。但我会检查它是否也支持这些功能。谢谢!
标签: javascript 3d three.js leaflet