1

編集:編集が多すぎます:doh:

今回問題を特定しました。Javascript コードを evaluatejavascript 関数に渡す方法に問題があります。QWebView の。

GoogleマップのAPIを使用して、以下のコードを保持しているスロットに接続されたプッシュボタンをクリックすると

this->page()->mainFrame()->evaluateJavaScript (QString ("Open(%1,2)").arg ( point.x ()).arg (point.y ()) );

問題の場所に関する地図が表示されます。

特定の座標にマーカーを追加したい場合は、次のようにします。

this->page()->mainFrame()->evaluateJavaScript (QString ("addMarker (%1, %2)").arg (point.x ()).arg (point.y ()) );

このコードは実行されません。何か案は?

この他に、評価用のevaluateJavaScriptにユーザー定義関数を追加する方法はありますか?

4

1 に答える 1

1

ついに答えが見つかりました!

関数evaluateJavaScriptから呼び出さなければならない Javascript 関数は、以下に示すように、C++ ソース (に含まれる) html ファイルで定義されることになっています。

ここで、新しいマーカー追加関数を作成する代わりに、以下に定義する Open 関数にそのコードを追加しました。

var map;

function initialize()
{
      if (GBrowserIsCompatible()) 
      {
            map = new GMap2(document.getElementById("map"));
            map.setCenter( new GLatLng(0,0),1 );
      }
    }

function Open (x,y)
{
    map.setCenter (new GLatLng(x,y), 13);

    var point = new GLatLng (x,y);
    map.addOverlay (new GMarker(point));
}
于 2011-05-27T08:08:58.993 に答える