0

オープン レイヤー 3 でフィーチャのレイヤーを取得するにはどうすればよいですか?

オープン レイヤの過去のバージョンには、各フィーチャにレイヤプロパティがありました。これにより、レイヤー固有のスタイルをフィーチャに適用したり、レイヤーごとにフィーチャを整理したりすることが容易になりました。

オープン レイヤー 3 には、このプロパティがありません。ol.map.forEachFeatureAtPixelを使用して、ホバー時に機能を取得しています。

    // Loop through all features a given pixel
    var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) {
        console.log(layer);
        return feature;      // just return the first feature
    });
4

1 に答える 1

4

他の人がこの問題を抱えている場合に備えて、自分の質問に答えたかっただけです。 これに関するOL3 フォーラムのディスカッション

ここでの解決策は、OL3 ホバーのに従い、レイヤーをol.map.forEachFeatureAtPixel関数に渡します。このパラメーターはドキュメントに記載されていないため、見つけるのは困難ですが、レイヤーを取得できます。これが複数のレイヤーの機能とどのように相互作用するかはわかりません。

   // Loop through all features at this pixel but just return the top level feature
    var fl = map.forEachFeatureAtPixel(pixel, function(feature, layer) {
        return {'feature':feature, 'layer':layer};
    });

    var feature = fl.feature,   feature
        layer = fl.layer;
于 2014-07-08T17:53:53.050 に答える