如何将返回的路由对象串行化并本地存储在传单路由机中

How to serialize and store the returned routing object locally in leaflet routing machine?

本文关键字:路由 单路由 存储 返回 对象      更新时间:2023-09-26

我正在考虑将返回的路由对象缓存在传单路由机中。但是我无法使用JSON.stringify()序列化对象,因为它会抛出一个错误,说明它是一个循环对象。我尝试使用一些java脚本库来克服这一问题,但对其进行反序列化会破坏对象。

var control = L.Routing.control({
    waypoints: [
        L.latLng(57.74, 11.94),
        L.latLng(57.6792, 11.949)
    ],
    geocoder: L.Control.Geocoder.nominatim(),
    routeWhileDragging: true,
    reverseWaypoints: true,
    showAlternatives: true,
    altLineOptions: {
        styles: [
            {color: 'black', opacity: 0.15, weight: 9},
            {color: 'white', opacity: 0.8, weight: 6},
            {color: 'blue', opacity: 0.5, weight: 2}
        ]
    }
});

帮助我在本地存储控制对象,并再次检索它以将其添加到地图中。

我无法使用JSON.stringify()序列化对象,因为它会抛出一个错误,说明它是一个圆形物体

似乎你有一个具有循环引用的对象,我建议使用这里提到的stringify的第二个参数,但这可能会导致问题,因为它会删除多次出现的任何内容,而不仅仅是循环引用。

签出这个插件,希望它能为你工作。