2017-03-13 14 views
0

長期間使用されておらず、クライアントが有効にしたいアプリがあります。重要な点は、このアプリケーションでwinforms-geplugin-control-libraryを使用し、そのコンポーネントが非推奨のGoogle Earth APIを参照しているため、1年以上動作しなくなったことです。Google Maps APIのサポートを終了するとエラーが発生する

元の機能または少なくとも一定レベルの.NET(C#)操作性を可能にするコンポーネントはどれも類似していますか?

GEPluginCtrls Earth not found

+0

私は答えが「いいえ」だと思います。 GEはGEProがインストールされたPCでKML経由でのみGEを使用します。 AFAIKでは、古いAPI機能を置き換えることはできません。うまくいけば私は間違っている。どんなAPI関数が必要ですか? – rheitzman

+0

私はまだ探偵モードでプログラムの機能を判断していますが、APIの問題は私に多くの時間を費やしています。私はEarth for MapsによってAPIの使用を変更し、さらにいくつかの例を作ることができましたが、今はonis.jsに問題があります。これは明らかにIE関連のトピックまたはWebブラウザです。 – xavendano

+0

あなたはGoogle EarthとGoogle Mapsを混在させていることに気付きましたか? Google Earthはデスクトップソフトウェアにインストールされています。 Google Mapsはクラウドベースのシステムです。 – rheitzman

答えて

1

ここを見てみてください。

http://www.c-sharpcorner.com/uploadfile/raj1979/using-google-earth-in-a-windows-forms-application/

をはじめよう:

のは、始めましょう。

Windowsフォームを使用してVisual Studio 2005または2008以降のバージョンで新しいWindowsアプリケーションを作成します。

今すぐWebブラウザコントロールをツールボックスからフォームにドラッグアンドドロップします。

Google Earthをコンピュータにインストールすると、GoogleEarth.exeが実行されます。 Google Earthをインストールしたマシンでこのexeファイルを探し、WindowsフォームアプリケーションのbinフォルダにGoogleEarth.exeを追加します。

Windowsフォームアプリケーションに新しいHTMLページを追加し、埋め込みコードをHTMLページに追加します。

このスクリプトキーはGoogleが提供しています。

<script src="http://www.google.com/jsapi?key=ABQIAAAAOh61kmAMajizdQht- Zz3MhReSrBDmGipqiQxKIYFIGIHpqaJ1BRq6XLUD-i7BPkx7XreIBQJ1MetxQ"> </script> 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title>Sample</title> 
    <script src="http://www.google.com/jsapi?key=ABQIAAAAOh61kmAMajizdQht- Zz3MhReSrBDmGipqiQxKIYFIGIHpqaJ1BRq6XLUD-i7BPkx7XreIBQJ1MetxQ"> </script> 
    <script type="text/javascript"> 
     var ge; 
     google.load("earth", "1"); 

     function init() { 
     google.earth.createInstance('map3d', initCB, failureCB); 
    } 

     function initCB(instance) { 
     ge = instance; 
     ge.getWindow().setVisibility(true); 

ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); 

     ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true); 
    ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true); 
     } 

     function failureCB(errorCode) { 
     } 

     google.setOnLoadCallback(init); 
    </script> 

</head> 
<body> 
    <div id="map3d" style="height: 400px; width: 600px;"> 
</div> 

</body> 
</html> 

WebブラウザコントロールのURLを、コード内でアプリケーションに追加した.htmページの場所に設定します。フォームのLoadイベントハンドラにこのコードを記述することができます。

this.webBrowser1.Url = new System.Uri(System.Environment.CurrentDirectory + "\\" + "Files\\MyGoogleEarthFile.htm", System.UriKind.Absolute); 

アプリケーションをビルドして実行します。

または他の実装のためにここを参照してください:

https://www.codeproject.com/Tips/889136/Csharp-Google-Maps-in-WinForm-with-WebBrowser-and

GoogleはHTMLページにmaps.google.comの同じ機能を持つマップを含むためのJavaScript APIを提供します。

バージョンv2では、ライブラリを使用するためのAPIキーを取得するために登録する必要があります。バージョンv3ではオプションですが、APIには制限があるため推奨されます。さらに必要な場合は、あなたが登録する必要がありますので、支払う必要があり、あなたが登録した場合に次のことができます。

1日あたり(より一日あたり25,000以上)の追加マップの ペイを生成したマップの統計情報を取得し 使用を防ぐために、あなたの鍵の使用を制限許可されていないサイトで

+0

ご協力ありがとうございますが、私は同じ応答があります: "varエラー=新しいエラー("モジュール: '地球'が見つかりません "); error.toString = function(){返信this.message;} スローエラー; "これは廃止予定のAPIです。 – xavendano

+0

古いwinforms-geplugin-control-libraryを削除し、上記の例の1つを回答に使用してください –

+0

Maps API 3.21を使用して全く新しいプロジェクトを作成しましたが、onions.jsでエラーが表示されるまでは問題ありませんでした。これは、デフォルトでVisual Studioを使用する組み込みAPIとWebブラウザーとの互換性の問題です。 – xavendano

1

最後に、いくつかのテストの後、グループの優れた推奨に続いて別の投稿Google Maps Script error in Onion.jsは明らかにこの問題を解決しましたが、埋め込みWebView型オブジェクトのIEとJavascriptのGoogle Maps APIとの互換性の問題である必要があります。

メタにHTMLを有効にする互換性:

関連する問題