0

視覚化 API を使用することで、ペルーのローカル マップ (州ごと) を取得し、アプリケーションをローカルで開発しながら正しく機能させることができました。

マップを表示するために使用されるコードは次のとおりです。

function cargarMapa(departamento)
{
    var data = google.visualization.arrayToDataTable([
        ['City'],
        [departamento]
    ]);

    var options = {
        region: 'PE',
        displayMode: 'regions',
        resolution: 'provinces',
        colorAxis: { colors: ['green'] },
        width: 465,
        height: 225
    };

    var geochart = new google.visualization.GeoChart(
        document.getElementById('geochart_div'));
    geochart.draw(data, options);
}

そして、私の PC で作業するとき、それは魅力のように機能します。

例: ローカル環境で動作するジオチャート

アプリケーションを実行するときはいつでも(Visual Studio 2012とIIS 8を使用しています)、ラップトップに展開するときも機能します(参考までに、大学のネットワークにいるときにそうしています)。しかし、これを私の大学のローカル サーバー (IIS 7.5) に展開すると、次のエラーが発生します。

参考までに、ビジュアライゼーション API の他のグラフを使用していますが、完全に読み込まれます

コードはまったく同じなので、何が問題なのでしょうか?

前もって感謝します!

4

1 に答える 1

2

あなたが抱えている問題は、この行にあります:

google.setOnLoadCallback(cargarMapa(departamento));

関数名の後に を含める(<arguments>)と、関数が呼び出され、すぐに実行されて何らかの値が返されます (nullの場合cargarMapa)。 google.setOnLoadCallback(null);API の読み込みが完了する前に呼び出すcargarMapaと問題が発生します。その 1 つは、マップが読み込まれていないことです。

これを修正するには、次を呼び出す新しい関数を作成しますcargarMapa(departamento);

function init () {
    cargarMapa(departamento);
}

これをコールバックとして設定します。

google.setOnLoadCallback(init);

()後に括弧 ( )がないことに注意してくださいinit。これにより、変数のように関数が引数としてコールバック ハンドラに渡さinitれます (技術的には、javascript では、関数と変数は同じものであり、すべてオブジェクトです)。

于 2013-11-13T22:48:16.807 に答える