2017-01-26 6 views
1

Mapboxをリーフレットで使用してポリゴンの描画、編集、削除などを行っています。シェイプファイルをアップロードしてマップに追加する場合も使用します。leaflet.shapefile 。特定のアプリケーションのため* .toGeoJSON()を使用しているときのGeoJSON文字列がMapboxで不完全です

、私は、このコードを使用してJSON文字列に変換され、にGeoJSONオブジェクトに層を変換する必要があります

var fcgeojson = layer.toGeoJSON(); 
var fcgeojsonstring = JSON.stringify(fcgeojson); 

Iはthis jsfiddleにこの作業バージョンを持っています。そして、シェイプファイルのほとんどは、うまく動作します。しかし、場合によってはthis shapefileを使用するときと同じように、ポリゴンの1つのJSON文字列が実際には不完全です。 jsfiddleの "Test"ボタンをクリックすると、それらの文字列をチェックアウトすることができます。

私はこれがなぜ起こっているのか理解できませんでした(私の推測では、シェイプファイルの頂点が多すぎます)。

答えて

1

json文字列をテストするために使用している方法は、問題が発生している場所です。不完全なjson文字列はstringifyまたはalertのどちらかから来ます。この問題については、問題はおそらく後者にあります。

Javascriptアラートは10,000文字でメッセージを切り捨てます。これは同時に、シェイプファイルがロードされた状態でjsfiddleでテストするときにアラートボックスに表示される文字数と同じです。

alert()ではなくconsole.log()を使用したとき、私はjson全体を見ることができました(14000文字に近い)。ただし、ブラウザによって異なるconsole.logの最大サイズがあるため、divやその他の要素のコンテンツを常に画面上に表示するように設定できます。

+0

ありがとうございました。この警告は、GeoJSONをWKT文字列に変換してから、Pagemethodを使用してC#に送信してデータベースに保存していたためです。しかし、それは私にこのポリゴンのエラーを与えていました。 あなたの返事を見て、私はPagemethod引数に文字制限があるかどうかを調べ始めました。そしてそれは確かに理由だったようです。だから私はこの[投稿](https://forums.asp.net/t/1539938.aspx?PageMethods+results+size+limit+)の解決策に従ってくれました。 私を正しい方向に向けるとありがとう! – Raj

関連する問題