Я получаю значение NaN, когда пытаюсь получить значение широты и долготы канала mqtt? Я пытаюсь разобрать их, чтобы они плавали, но все равно получаю значение NaN - PullRequest
0 голосов
/ 11 декабря 2019

Я попытался проанализировать мою долготу и широту GPS, чтобы она плавала, чтобы моя карта Google могла прочитать ее, но она возвращает только NaN. Я отправляю данные как плавающие из моего arduino через канал mqtt, с которого мой 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

1 Ответ

1 голос
/ 11 декабря 2019

Как я уже говорил в комментариях, полезная нагрузка сообщения принимается в виде строки (сообщения MQTT представляют собой просто байтовые массивы, пользователь может преобразовать их в любой формат более высокого уровня).

Есливы хотите использовать строку "{lng: 18.873501}" в качестве объекта JSON { "lng": 18.873501 }, вам необходимо сначала проанализировать ее.

Поскольку вы не предоставили функцию onMessageArrived, трудно предложить, как это исправить правильно,но вы можете сделать следующее:

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