0

Google Earth API 経由で kmz ファイルを開く際に問題があります。サーバー上のファイルへの静的リンクを提供すると、正常に機能します。

google.earth.fetchKml(ge, 'http://10.122.150.183:8008/test.kmz', checkForCoordinates);

しかし、別のドメイン (WCF サービス) のファイルへのリンクを変更すると'https://10.122.150.183:4431/Uploads/1/test.kmz'、Google Earth でファイルが開きません。私は別の解決策を試しました.ASP.Net MVCコントローラーからkmzファイルを動的に提供し、以下を返します:

return File(fileStream, "application/vnd.google-earth.kmz kmz", fileName);

ブラウザのアドレスバーから取得しようとするとうまくいきますが、fetchKmlメソッドでアクションへのリンクを提供すると、アクションは起動しません。

別のドメインから kmz ファイルを開く方法について何か提案はありますか?

4

3 に答える 3

0

MIME タイプを割り当てることで、正しい方向に進んでいると思います。このページの情報を見た https://developers.google.com/kml/documentation/kml_tut#kml_server

于 2012-09-19T00:20:54.867 に答える
0

Kmz ファイル ジェネレーターを wcf に実装しました。サービスは、送信応答コンテンツ タイプが「application/vnd.google-earth.kmz」に設定された Stream タイプ オブジェクトを返します。

コードは次のようになります

public class Kmz
{
    public static Stream Generate(string stringKml, string fileName)
    {
        MemoryStream stream = new MemoryStream();
        using (ZipFile zip = new ZipFile())
        {
            zip.AddEntry(fileName, stringKml);
            zip.Save(stream);
        }

        WebOperationContext.Current.OutgoingResponse.ContentType = "application/vnd.google-earth.kmz";

        stream.Position = 0;
        return stream;
    }
}

うまくいけば、それは役に立ちます。

于 2012-10-31T06:19:42.703 に答える
0

また、javascript の iframe またはスクリプトの方法を使用して kml コンテンツをロードすることもできます。これらの 2 つの方法を使用すると、別のドメインからリソースをロードし、parseKml 関数を使用して kml コンテンツを解析し、地球に追加できます。

うまくいけば、それは役に立ちます。

于 2013-09-17T04:05:42.423 に答える