Здесь Datalens API выдает ошибку при попытке обновить позиции маркеров. Это не всегда, но всегда происходит, когда ждут несколько минут (взаимодействия).
ERROR:
message: "H.geo.Point (Argument #0 NaN)"
stack: "Error
at new C (https://js.api.here.com/v3/3.0/mapsjs-core.js:11:460)
at Wb (https://js.api.here.com/v3/3.0/mapsjs-core.js:14:180)
at new gc (https://js.api.here.com/v3/3.0/mapsjs-core.js:18:532)
at Object.s [as interp] (https://js.cit.datalens.api.here.com/latest/mapsjs-datalens.js:7:137026)
at a.step_ (https://js.cit.datalens.api.here.com/latest/mapsjs-datalens.js:7:135785)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:2743:31)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.js:2510:47)
at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (http://localhost:4200/polyfills.js:2818:34)
at ZoneTask.invoke (http://localhost:4200/polyfills.js:2807:48)
at timer (http://localhost:4200/polyfills.js:4376:29)"
name: "InvalidArgumentError"
at: "InvalidArgumentError
at https://js.api.here.com/v3/3.0/mapsjs-core.js:11:521
at https://js.api.here.com/v3/3.0/mapsjs-core.js:320:26"
Я проверил ВСЕ комбинации широты / долготы, которые я поместил в массив данных, и нет недопустимых чисел.
try {
const data = [];
pos.docs.map((item, i) => {
const _lat = parseFloat(item.gps_latitude);
const _lng = parseFloat(item.gps_longitude);
if (!isNaN(_lat) && !isNaN(_lng) && !isNaN(item.gps_direction) && (_lat >= -90 && _lat <= 90) && (_lng >= -180 && _lng <= 180)) {
data.push([item.name, _lat, _lng]);
}
});
if (this.dataLensProvider) {
try {
this.dataLensProvider.setData({
columns: ['id', 'lat', 'lng'],
rows: data
});
} catch (e) {
console.log(e);
}
}
} catch (e) {
console.log(e);
}
Ожидается: все маркеры анимации работают.
Фактически: после некоторых обновлений API возвращает ОШИБКУ и не применяет изменения.