在类似于Google位置记录的应用程序中检测“不太可能”的位置

奥哈德

我目前正在编写一个小型地理位置应用程序,与Google定位记录十分相似Android手机会定期将其位置发送到服务器,然后我可以在地图上显示它们。我使用JavaScript API 3,并且效果很好。然而...

结果样本

如您所见,出了点问题:有时由于电话交换网络,位置非常不准确。我想摆脱那些“不好的地方”,显示出一条干净的路,但我还没有想出怎么做。

如何确定某个位置是否明显为假?

从人的角度来看,这是很明显的,不幸的是我的计算机还没有这样认为。

  • 一种解决方案可能是使用函数computeHeading(from:LatLng, to:LatLng)google.maps.geometry.spherical快速连续检测非常尖锐的角度并采取相应的措施;但是,我真的不知道该怎么做,因为每次检查最后五个点似乎效率低下……尤其是因为我要处理几千个点。

  • 另一件事可能是估计行驶速度,而忽略涉及突然和不切实际的加速度的点。

  • 也许我可以检查该点是否在他的邻居定义的区域内。假设每个位置都应该位于前一个位置和后一个位置之间,这似乎是合理的,如下面的示例所示。

示例圈

任何帮助,将不胜感激。

奥哈德

因此,我决定采用我想到的第三个方法:测试标记是否在由其他两个标记定义的圆内。基本几何,毕达哥拉斯定理。这是我的代码:

function isLikely(testedPos, pos1, pos2) {
    var hypothenuse = calcDistance(pos1, pos2);
    var side1 = calcDistance(testedPos, pos1);
    var side2 = calcDistance(testedPos, pos2);
    if (hypothenuse*hypothenuse*1.2 >= side1*side1 + side2*side2)
        return true;
    else
        return false;
}

calcDistance只是的别名google.maps.geometry.spherical.computeDistanceBetween()因为我很懒。

那很好!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Android应用程序中实现类似于Google Maps的搜索栏

地图行为类似于Google Maps应用程序中的行为

iOS应用程序中的MVC设计类似于Whatsapp

[[可能]]和[[不太可能]]影响程序汇编的简单示例?

类似于 Oracle Forms 的应用程序

如何创建类似于Google位置记录的Android时间线视图?

React - 检测顶级应用程序组件的先前位置?

如何在JavaFX应用程序中的任何位置检测SPACE KeyEvent?

如何在React应用程序中页面上的任何位置检测keydown?

在Android应用程序中,新的SQLite记录将保存在文件系统中的什么位置?

在应用程序中启用位置后搜索位置

如何使我的电子应用程序中的安装程序类似于vscode安装设置?

Google Glass应用程序可以具有类似于Android应用程序的菜单按钮吗?

如何制作类似于Google Maps应用程序的向上滑动面板?

Xamarin Forms 中的应用程序设置/属性类似于 Android 中的共享首选项

如何在Swing应用程序中获得类似于Intellij Idea的外观?

在Windows 10中类似于邮件应用程序的HTML编辑?

类似于提醒应用程序iOS 7中的页面控制

如何检索类似于 Windows 内置混音器应用程序中的音频会话名称?

杀死类似于WhatsApp的应用程序后获得通知

输出类似于“ WireShark”的GUI输出的应用程序

使用JavaScript启动应用程序,类似于Zoom

从选项卡弹出(类似于Yelp应用程序)

关于应用程序布局的TVOS(类似于iTunes等)

构建类似于Jarvis的本地语言应用程序

应用程序因“类似于口袋妖怪”而被拒绝

在cloudshell(Google App Engine)中寻找已部署的应用程序文件的位置?

如何在Android应用程序的Google Map中删除不必要的标记和位置?

任意位置的Tab栏,类似于Swift中的Instagram主页