javascript - 当我尝试从 mqtt channel 获取纬度和经度值时,我得到 NaN 值?我尝试将它们解析为 float ,但最终仍然得到 NaN 值

标签 javascript html parsing mqtt esp8266

我尝试解析我的 GPS 经度和纬度以使其 float ,以便我的谷歌地图可以读取它,但它只返回 NaN。 我通过 mqtt channel 从我的 arduino 发送 float 数据,我的 html 代码正在从中读取数据,有人可能不知道为什么会失败吗?

window.initialize = initialize;

var redraw = function(payload) {
    lat = parseFloat(payload.message.lat);
    lng = parseFloat(payload.message.lng);

    console.log(lng);

    map.setCenter({ lat: 59.3559, lng:lng, alt: 0 });
    mark.setPosition({ lat: 59.3559, lng:lng, alt: 0 });

    lineCoords.push(new google.maps.LatLng(59.3559,lng));

enter image description here enter image description here

最佳答案

正如我在评论中所说,消息有效负载作为字符串接收(MQTT 消息只是字节数组,由用户将它们转换为任何更高级别的格式)。

如果你想使用字符串"{lng: 18.873501}"作为JSON对象{ "lng": 18.873501 }你需要先解析它。

由于您尚未提供 onMessageArrived 函数,因此很难建议如何正确解决此问题,但您可以执行以下操作:

var location = JSON.parse(message.payload);
var lat = location.lat;
var lng = location.lng;

关于javascript - 当我尝试从 mqtt channel 获取纬度和经度值时,我得到 NaN 值?我尝试将它们解析为 float ,但最终仍然得到 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59280509/

相关文章:

c - yacc/bison 操作的范围是什么?

ruby - 获取标签后的文本,包含另一个文本

java - 将 CSV 文件中的字符串解析为整数

javascript - Angular.js 不起作用

javascript - 为什么我的 jQuery 不适用于通过 ajax 加载的元素?

javascript - 如何修复 WebStorm 中的 "cannot find declaration to go to"?

html - 如何使我的页面与 IE 兼容?

javascript - 无法点击 PrimeNG 确认对话框,锁屏

jquery - 直到过度效果完成后链接才有效

html - 如何创建 HTML 格式的电子邮件