- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了一些代码来创建一些代码来处理相对较小位置的图像,例如平面,以便在我存储的图像位置和传入的纬度/经度信息之间进行转换。
使用 https://msdn.microsoft.com/en-us/library/jj635757(v=vs.85).aspx 中提供的公式我写了这些代码行等等
var vector = math.matrix(
[[x1],
[y1],
[x2],
[y2]]);
var matrix = math.matrix(
[[lat1,long1,1,0]
,[-long1,lat1,0,1]
,[lat2,long2,1,0]
,[-long2,lat2,0,1]]);
var solution = math.multiply(math.inv(matrix),vector);
当我将其放入数据库并从数据库中取回时,存在从返回到解决方案的向量到转换数据的隐式转换。
a = parseFloat(conversiondata['A']);
b = parseFloat(conversiondata['B']);
c = parseFloat(conversiondata['C']);
d = parseFloat(conversiondata['D']);
var long = position.coords.longitude;
var lat = position.coords.latitude;
var x = a * lat + b * long + c;
var y = b * lat - a * long + d;
值 x1、x2、y1、y2 是通过获取用户点击数据提供的。lat1、lat2、long1、long2 值由用户响应两次点击 map 图像而提供。
当将 x,y 放回 map 时,它的位置不太正确, map 上的位置似乎几乎位于 (x1,y1) 和 (x2,y2) 定义的直线的另一侧。我试图告诉不准确的原因是什么。 (不过我暂时假设明显的反射是巧合)
如果有人可以帮助我缩小可能出现问题的范围,这是我考虑过的事情( map 在任何方向上都没有达到一英里以供引用)。
仿射变换根本不起作用 - 但根据提供的链接,它包括缩放,所以这不应该是问题的原因我的变量设置有问题 - 我查看我的代码的时间太长了,看不出它是否存在。我失去了太多的准确性,将 var 数据作为 float 移动到 MySQL 或作为字符串移动到 PHP我没有从点击数据/纬度/经度输入中提供足够准确的信息。 - 我在点击 map 并从谷歌地图获取纬度/经度时显着放大了我SVG 不够准确 - 虽然查看 xml 数据,但它保留了小数点。我正在处理的区域太大,无法通过假设局部 map 是平面来简化
感谢您提供任何帮助,感谢您阅读到这里。
为了进一步引用,我将 JavaScript 提供给我的纬度/经度数据放入谷歌地图中,我将精度与该数据而不是我的实际位置进行比较。
附加引用:我在图像的东西边缘发现了“地标”,并计算出经度差为 0.02695,图像的长度至少是高度的两倍。
完整运行值的示例值。
引用点
点 1 (x,y) = (619,564)
点 1 (lat,long) = (X.099546,-Y.465179)
点 2 (x,y) = (1181,190)
点 2 (lat,long) = (X.10365341,-Y.457014)
地理位置
预测坐标(x,y) = (975,262)
给定坐标(lat,long) = (X.102851,-Y.459996)
真实信号 (x,y) = (1022.7498707999475,351.02335709985346)
真实信号(大约经纬度)= (X.101964, -Y.459340)
(真正的 blip lat long 是近似的,因为它在没有好的地标的水体中)
为了安全起见,我已经从纬度/经度坐标中取出小数点前的数字,但我可以确认所有 X 都相等且所有 Y 都相等
另外,我在 Chrome 的开发者工具中使用了经纬度值,轴似乎稍微旋转了大约 30 度
最佳答案
经过充分的探索后,我发现我错误地订购了纬度和经度。在我尚未从顶部的 N 旋转的 map 上,以下代码将我带到了几英尺之内,比依赖用户输入和像素网格导致的精度不足更容易解释。
var matrix = math.matrix(
[[long1,lat1,1,0]
,[-lat1,long1,0,1]
,[long2,lat2,1,0]
,[-lat2,long2,0,1]]);
和
var x = a * long + b * lat + c;
var y = b * long - a * lat + d;
对于有兴趣将此作为简化其应用程序数学运算的潜在解决方案的任何其他人发生的漂移在对 Angular 线为 8000 英尺且引用点差异约为 3000 英尺的 map 上不到 40 英尺。这意味着漂移略高于引用点距离的 1%,这包括人为错误的影响。
当您在较小的 map 上工作时,此错误应该会减少,而在您在较大的 map 上工作时会增加。
我在一张旋转了 ~90 度的 map 上再次测试了它并且代码被阻止了
关于javascript - 地理定位、准确性和仿射变换 : What is causing my inaccurate conversion from a lat/long location into a point on my image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31372785/
我正在使用 HTML5 的 Canvas 创建一个“预览”图像,该图像主要由一些矩形和简单的线条组成。到目前为止工作正常,但有一个问题我无法以某种方式解决。假设以下情况: context.fillSt
下面是我用来测试 Tesseract 性能的非常简单的程序。尽管图片是高质量且非常清晰的屏幕截图(不是带有颜色的复杂图片),但我得到的结果并不像预期的那样。请查看我的代码和下面的结果。我不确定是我做错
我已经为此苦苦挣扎了一段时间,希望得到一些帮助! 我在 sprite kit 中有一个瓦片 map ,用户可以点击任何瓦片,事情就会发生。为了获得他们点击的图 block ,我使用了这样的东西: -(
嗨,我编写了这个简单的 javascript 幻灯片,因为我想用 javascript 编写自己的幻灯片。它会按照设定的时间间隔自动更改图像。但是,当我尝试单击后退和前进功能时,结果不准确或图像是有序
我正在尝试实现一种光线拾取算法,用于绘制和选择 block (因此我需要相当高的准确性)。最初我使用了光线转换实现,但我觉得它不够准确(尽管故障可能出在我的相交测试上)。不管怎样,我决定尝试使用深度缓
请参阅此 Google Play 邮件:- Issue: Inaccurate Target Audience We determined that your app and store listin
我已经使用 C++ 和 OpenGL 创建了一个简单的 3d 第一人称演示,它似乎运行良好。我的目标是:当用户将相机指向一个平面并单击鼠标左键时,我想绘制一条射线的交点,该射线从玩家的位置与该平面指向
背景 我有一个 java 服务器正在对 go 服务器进行 RPC 调用。 java rpc 客户端和 go rpc 服务器使用 lightstep 进行检测。除了 lightstep UI 中放置 g
我有一个存储十进制值的 MySQL 数据库 (DECIMAL(32, 12))。当我使用 HeidiSQL 选择值时,值显示正确(例如 15922.638440778302)。但是当我在 NodeJS
我试图使用以下代码将 div 元素的右边缘定位到距页面中心 300 像素的位置: HTML: CSS: #content { width: 100%;
我需要在 WebView -> WebChromeClient -> onProgressChanged() 中访问进度值。进度整数值不会从 0 增加到 100,而是会跳来跳去。这是加载一页和相关进度
我正在用 C++ 编写一个类,它需要一些在整个类中都可以访问的常量。通常我会使用#define、const- 或静态声明,但发生了一些奇怪的事情:所以例如我写 #define Rm 8.3144621
我正在尝试使用 distanceFromLocation: 方法来计算我手持 iPhone 行走的总距离。到目前为止,我一直在四处寻找以帮助纠正我令人困惑、不准确且看似武断的结果。在这些代码片段中,t
我已经实现了一些代码来创建一些代码来处理相对较小位置的图像,例如平面,以便在我存储的图像位置和传入的纬度/经度信息之间进行转换。 使用 https://msdn.microsoft.com/en-us
我已经安装了最新的 VS2017 更新 (15.4.4),但在编译我们的项目时,单元测试开始失败。在使用优化 (/O2) 和浮点快速模型 (/fp:fast) 时,问题似乎发生在某些情况下。以前的编译
在 Mac OS Mojave 10.14.6 上使用 VS Code 处理一个奇怪的包含问题。 #include errors detected. Please update your includ
我是一名优秀的程序员,十分优秀!