我正在尝试开发一个系统,在这个系统中,背景上的粒子将其速度相应地改变为设备的速度(例如,在汽车或公共汽车中)。因此,使用Coordinates.speed属性,地理定位API听起来是一个很好的选择。
问题是,我的速度总是以空的形式返回。据我所知,这应该是一个与设备相关的问题,但我尝试过使用Nexus6p、Mac、三星平板电脑和iPad,在控制台中总是有相同的空答案:“从API: null速度”。
你知道为什么代码不起作用吗?以下是页面和脚本:https://marceloscoelho.github.io
(...)
<script>
//getting the user location
var userSpeed = null;
function getLocation() {
setInterval(function(){
navigator.geolocation.watchPosition(showPosition); }, 500);
}
function render() {
if (userSpeed == null) {
userSpeed = 0.00005;
}
console.log("Speed used :" + userSpeed);
percentage += userSpeed; //Speed of the tunnel
var p1 = path.getPointAt(percentage % 1);
var p2 = path.getPointAt((percentage + 0.01) % 1);
camera.position.set(p1.x, p1.y, p1.z);
camera.lookAt(p2);
//Render the scene
renderer.render(scene, camera);
requestAnimationFrame(render);
}
requestAnimationFrame(render);
function showPosition(position){
var speed = position.coords.speed;
console.log("Speed from API: " + speed);
// if too big
speed = speed / 1000000;
userSpeed = speed;
}
</script>
谢谢!
发布于 2018-01-26 23:36:05
速度不是实现在任何浏览器,我知道同样的高度。当你有一个以上的位置,你当然可以启发式地估计速度,但识别一个停在灯等是不容易或准确的。
有关完整的示例,请参见布罗特克鲁门
https://stackoverflow.com/questions/48465476
复制相似问题