JavaScriptのポップアップウィンドウ内のグラフ


10

ポップアップウィンドウ内にグラフを表示する方法 私は、Raphaelプラグインhttp://dynmeth.github.com/RaphaelLayer/をサポートするLeaflet JSを使用しています。ポップアップウィンドウ内にdivを作成することは可能ですか?私はhttp://softwarebyjosh.com/raphy-charts/について考えていました

Leafletでそれができない場合、私はRaphaelマップソリューションのみに開かれます。

ありがとう

回答:


1

それは可能だと思います。Leafletのホームページでこの例を確認します。

// add a marker in the given location, attach some popup content to it and open the popup
L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup. <br> Easily customizable.').openPopup();

したがって、コンテンツとしてマークアップを追加できます。上記のbrタグを参照してください。

// add a marker in the given location, attach some popup content to it and open the popup
L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup. <div class="popup_custom_div"></div> Easily customizable.').openPopup();
//retrieve the div by class name take care if more then one maybe opened
var mydiv = document.getElementsByClassName( 'popup_custom_div' )[0];
mydiv.innerHTML = 'I am here';

2

@cavilaによる回答はソリューションの一部にすぎません。グラフのdivタグをポップアップに配置できますが、「。openPopup()」イベントをリッスンしてraphy-carts JavaScriptを実行する必要があるため、問題が発生します。そのイベントでそれを行わないと、DOMに挿入されていないため、実行時にdivタグが見つかりません。リーフレットはイベントのリスニングをサポートしているように見えるため、上記のコードに次のようなものを追加する必要があります。

map.on('popup', function(e) {
    //Run the chart code here like this
    var chart = new Charts.LineChart('chart1');
     chart.add_line({
        data: [[1, 828906, {tooltip: "my special point"}],[2, 566933],[3, 584150],[4,  
                 1072143],[5, 1622455],[6, 2466746],[7, 2427789]]
        });

     chart.draw();
});

openPopup()は非同期ですか?Javascriptインタープリターは、後で実行されるコールバックを除いて、前の戻り値まで次のステートメントを実行しないためです。イベントがwindow.setTimeoutループ内のその「div」の存在についてプールを実行しない場合の代替手段。イベントのコールバックははるかに高速になります。
cavila 2012

1

1つの方法は、メーカーのクリックイベントをリッスンし、その場でチャートを作成することです。次に例を示します。http//jsfiddle.net/6UJQ4/

私がいじり始めるまで私にははっきりしていなかったことの1つは、LeafletのbindPopupが文字列または DOMノードを取得できることです。上記の例では、DOMノードを作成し、それをbindPopupに渡して、グラフを作成しています。


ポリゴンイベントでは可能ですか?ポリゴンをクリックすると、同様のポップアップが表示されますか?
13

はい、可能です。私の例では、チャートの値として50を使用するようにハードコードされていますが、チャートを作成する関数内で好きなように実行できます。
Derek Swingley、2013

このようなjsfiddle上のポリゴンまたはgeojsonデータと、マーカーを使用した例を書いていただけますか?よろしくお願いします。
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.