2

google-maps-utility-library-v3を使用して、Google Earth API ビューを Google Maps API v3 実装に組み込みます。これらの Google Maps API v3 / Earth API ユーティリティは、私が知る限り、ユーザー jlivni によって作成されたものであり、そのコードが利用できることは、これまでのところ私を大いに助けてくれました。

(私の実装の非常に大まかなプロトタイプはこちらです

私が抱えている問題は、(上記のプロトタイプのように)Maps API v3標準ビューの1つではなく、(ページの読み込み時に)Google Earthビューをデフォルトにしたいということです。

上記のリンク(srcの下)で(コンパイルされていない?)googleearth.jsの81、131、および133行目を見て、JourneyImmersionInitialiseMapLoadGPXAnimate.js内でMaps APIオプションを設定するときに次のことを試しました...

var myOptions = {
    zoom: 18,
    center: arr_lat_lon[currentTrk][currentTrkseg][0],
    scaleControl: true,
    tilt: 45,
    mapTypeId: earthMapType,
    overviewMapControl: true,
    overviewMapControlOptions: {
        opened: true
        }
    };

map = new google.maps.Map(document.getElementById("map"), myOptions);

...しかし取得...

ReferenceError: earthMapType is not defined

さらに、私は試しました...

mapTypeId: GoogleEarth.earthMapType,

... これにより、右上にマップ タイプ オプションのない灰色のマップ キャンバスが表示されます。ページから Earth ビューを選択したら、Firebug のコンソールで ... を使用して標準の Earth API マップ タイプを変更できます。

earth.getInstance().getOptions().setMapType(earth.getInstance().MAP_TYPE_EARTH)

... また ...

earth.getInstance().getOptions().setMapType(earth.getInstance().MAP_TYPE_SKY)

...しかし、最後の要素の代わりに earthMapType または GoogleEarth.earthMapType を使用すると、今度は Firebug コンソールでエラーが発生します...

Error: Error calling method on NPObject!

どんな助けでも大歓迎です。前もって感謝します

(私は初心者なので、この投稿で 2 つ以上のリンクを提供することはできませんが、stackoverflow.com/questions/3039250/google-earth-integrated-with-google-maps-api- を見たことを追加したいと思います。 v3)

4

1 に答える 1

1

このライブラリには、プログラムで切り替えるパブリック メソッドがありません。すべてのセットアップが完了する前に切り替えようとすると、失敗します。理想的には、GoogleEarth オブジェクトをインスタンス化した後にコールバックが存在することになりますが、コンパイルされていない JS でプライベート showEarth_() メソッドを使用して問題を回避することができません。

プラグインの準備が整うまでに任意の時間待機する必要があることに注意してください。通常、次のような方法でうまくいくはずです。

googleEarth = new GoogleEarth(map);
setTimeout('googleEarth.showEarth_();',1000);

これはすべてかなりハックなので、Issue Tracker に機能リクエストを提出して、プログラムで Earth タイプに切り替えるためのサポートされている方法を追加してください。

于 2012-08-02T15:47:29.657 に答える