2017-05-12 16 views
0

レイヤーのカスタム属性を読み取るにはどうすればよいですか?GUIDE4YOU/OL3 - レイヤーのカスタム属性を読み取る方法

たとえば、カスタム属性テストと値samのレイヤーを追加しました。

Console log map layers

createG4U('#g4u-map', 'conf/client.commented.json', 'conf/layers.commented.json').then(function (map) { map.asSoonAs('ready', true, function() { map.get('api').addFeatureLayer({ "id": "1", "type": "GeoJSON", "style": stylefunction, "source": { "url": "files/sample.json" }, "visible": true, "test" : "sam" }); map.getLayers().forEach(function (layer) { console.log(layer); }); }); });

敬具、

サム

答えて

0

これはlayer.get('test')で可能です。

レイヤーが異なるレイヤーグループにネストされているため、getLayers()のレイヤーを取得することはできません。

メソッドaddFeatureLayerは、レイヤーへの参照を返します。保存して後で使用することができます。

または、recursiveForEachを使用すると、すべてのネストされたレイヤーを再帰的に繰り返します。

あなたがmap.getLayerGroup().recursiveForEach(function (layer) { ... })とマップ内のすべてのレイヤのためにそれを行うことができますいずれか、またはあなただけのmap.get('featureLayers').recursiveForEach(function (layer) { ... })

+0

動作していない、私はいつも '未定義' を取得。属性id(必須属性)を読み出すことさえも 'undefined'です。 – Sam

+0

私は答えを更新しました –

0

とfeatureLayersまたはベースレイヤーおかげでサイモンのためにそれを行うことができます!

の作業コード:

createG4U('#g4u-map', 'conf/client.commented.json', 'conf/layers.commented.json').then(function (map) { map.asSoonAs('ready', true, function() { map.get('api').addFeatureLayer({ "id": "1", "type": "GeoJSON", "style": stylefunction, "source": { "url": "files/sample.json" }, "visible": true, "test" : "sam" }); map.get('featureLayers').recursiveForEach(function (layer) { console.log(layer.get('test')); }); //Make the layer visible in the menu map.get('UIConfigurator').configureUI(); }); });

関連する問題