2016-05-01 4 views
0

私はリーフレットのルーティングマシンで返されたルーティングオブジェクトをキャッシュすることを考えています。しかし、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} 
     ] 
    } 
}); 

コントロールオブジェクトをローカルに格納して再度マップに追加する際に助けてください。

+0

「どのようなライブラリを使用したのですか」という意味はどうですか? –

+0

dojox json refライブラリ。これはmapをレンダリングするためにcontrol.addto(map)を使うだけです。デシリアライズされたコントロールオブジェクトは「addtoが指定されていません」というエラーをスローします。 – raven

答えて

0

私はそれはそれはあなたが循環参照を持つオブジェクトを持っているようだ円形オブジェクト

だ旨 のエラーをスローするように、私が使用してことをお勧めJSON.stringify()を使用してオブジェクトをシリアル化することはできません前述のようにstringifyの2番目のパラメータhereが、循環参照ではなく複数回表示されるものを削除するため、問題が発生する可能性があります。

チェックアウトpluginあなたのために働くことを望みます。

関連する問題