1

たとえば、この例https://google-developers.appspot.com/earth/documentation/samples/fetchkml_exampleのような基本的なものを自分で再現しようとすると、うまくいかない理由がわかりません。Google Maps APIに使用しているキーを使用しているので、その部分は問題ないと思いますが、KMLに関しては、フェッチされているか解析されているかに関係なく、キーを機能させることができないようです。 。KMLファイルをhttps://sites.google.com/site/shahinkmlexamples/experiment/kml_example.kmlに配置しました。コードは以下のとおりですが、自分のキー番号は表示されていません。

<html>
<head>
   <title>fetchkml_dom_example.html</title>
   <script src="//www.google.com/jsapi?key=MYKEY#"></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);

         var href = 'https://sites.google.com/' + 'site/shahinkmlexamples/experiment/kml_example.kml';

         google.earth.fetchKml(ge, href, function(kmlObject) {
               if (kmlObject)
                  ge.getFeatures().appendChild(kmlObject);
               if (kmlObject.getAbstractView() !== null)
                  ge.getView().setAbstractView(kmlObject.getAbstractView());
         });
      }

      function failureCB(errorCode) {
      }

      google.setOnLoadCallback(init);
   </script>

</head>
<body>

   <div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;"></div>

</body>
</html>

だから私は解決策が単純でなければならないことを知っていますが、私はそれを理解することができません。ありがとう

4

2 に答える 2

0

あなたの問題が何であるかわかりません。私はあなたのコードをオンラインエディタに入れました-http ://www.onlinehtmleditor.net/ 単純なコピーアンドペーストで、それはうまくいきました。

また、APIキーについて。Google Earthの場合、もう必要ありません。以下の一般的なJavaScript呼び出しを使用するだけです

于 2012-09-12T17:45:07.807 に答える
0

ローカルファイルからロードする場合(notepad ++を使用してそのファイルをChromeにロードする場合など)、スクリプトタグにプロトコルを追加する必要があります。

<script src="//www.google.com/jsapi?key=MYKEY#"></script>

になる:

<script src="https://www.google.com/jsapi?key=MYKEY#"></script>

その変更がない場合、ページはローカルファイルシステムでファイルを探します。

ページがHTTPSの場合はブラウザがHTTPSバージョンをロードし、ページがHTTPの場合はHTTPバージョンをロードするように、サンプルでは省略されています。これにより、ブラウザでのセキュリティ警告が防止されます。

于 2012-09-13T18:32:38.770 に答える