0

そのcartodbブログ投稿に基づいて、多層ジオポータルを作成しました。

私はそれを稼働させ、GitHub サイトでホストしていますが、 infowindowsを有効にしようとしていますが、機能しません。Cartodbサポートは、次の行に追加することを提案しました。

cdb.vis.Vis.addInfowindow(map, layer.getSubLayer(0), ['cartodb_id']);

レイヤーを作成した後。ただし、それを行うと、マップがまったく読み込まれません。

この問題を修正するために私の github リポジトリに欠けている可能性のあるコードに関する提案(multilayer.js ファイルの 77 行目は現在コメントアウトされています)。

これをライブで見るには、andrewmartini.github.io/labs-multilayer/multilayer.html?u=andrewmartini&t=multilayer_test&v=0d192f34-2a79-11e5-8e7c-0e4fddd5de28&tt=Title&d=descr にアクセスしてください

ノート:

私はこのフォーラムを初めて使用します。投稿ルールに違反している場合はご容赦ください。また、リンクを追加しますが、私は新しいので、システムではまだ許可されません。私は GitHub と Javascript を使用するのは比較的新しいですが、GIS には非常に精通しています。

ありがとう、アンドリュー

4

1 に答える 1

0

したがって、Cartodb の人々からのこの回答は有益な出発点であり、実験を行っている他の人のためにこれを共有したいと思いました。上記のコード行は addLayer 関数内に入る必要がありました。

function addLayer(id, show, map) {
    return function (layer) {
        if (!show) {
            layer.hide();
        }
        cdb.vis.Vis.addInfowindow(map, layer.getSubLayer(0), ['cartodb_id'])
        cartodbLayers[id] = layer;
    };
}

また、これを変更します。

                cartodb.createLayer(map, layerOptions)
                    .addTo(map)
                    .done(addLayer(id, layer.show, map))
                    .error(function (error) {
                        console.log("error: " + error);
                    });

ただし、これにはまだ問題があります。たとえば、cbd.vis.Vis.addInfowindow 関数に他の列を追加すると、その列の値を持つデータ レイヤーのみが読み込まれ、他のすべてのレイヤーは読み込まれません。cartodb アカウント/データベースから複数のデータセットの選択した列に情報ウィンドウを追加できるように、これを修正する方法を教えてもらえますか?

于 2015-08-17T17:29:31.497 に答える