1

Google Maps API が埋め込まれた C# を使用してデスクトップ アプリケーションを作成しようとしています。この目的のために、Web ブラウザをアプリケーションに組み込み、Maps API を使用しました。アプリケーション内で Maps API の基本機能を使用できました。

私の目的は、その場で KML ファイルを作成し、マップ上に表示することです。KML ファイルは、GDAL を使用してシェープファイルから正常に作成されます。maps.google.com にインポートして有効性を確認しました。私が直面している問題は、Maps API を使用してローカル ディスク上の KML ファイルを表示できないことです。これらの KML ファイルを、Google がアクセスできる公開サーバーにアップロードする方法はありません。Webで検索したところ、geoxml3がそれらの目的に使用できることがわかりましたが、処理できません。Geoxml3 は同じクロスドメイン ダウンロードの制限を受けるため、ローカル ディスク上の KML ファイルを解析しようとすると、「アクセスが拒否されました」というエラーが表示されます。KML ドキュメントが含まれているマップ ページと同じドメインから提供されていることを確認するにはどうすればよいですか? 私はjavascriptにかなり慣れていないので、助けていただければ幸いです。

私がやろうとしていることを達成する別の方法がある場合 (ローカル kml ファイルをオンザフライで Google サーバーにインポートするなど)、そのことを教えてください。前もって感謝します。

エキン・ゲディク

4

1 に答える 1

0

クロスドメインの問題に対する通常の答え(少なくともCORSを使用する最近のブラウザー:クロスオリジンリソースシェアリング(私は見たが実験はしていません)の前)は、Webページと同じドメインでプロキシを使用することです。ただし、ローカルファイルでどのように機能するかはわかりません。

ローカルマシンで実行されているアプリケーションからローカルファイルにアクセスできるはずですが、それが開発以外の使用条件に準拠しているかどうかはわかりません。

もう1つのオプションは、kmlを文字列としてgeoxml3に渡し、parseKmlStringメソッドを使用することです。それはxmlHttpRequestを回避します。

于 2012-07-11T13:36:15.980 に答える