創建KML文件的下載要在不創建KML後端服務器組件來創建完全在瀏覽器中運行的Web應用程序上的即時使用谷歌地球API,其中點擊「下載」按鈕啓動網頁瀏覽器的正常內容下載功能會提示保存與.KML擴展名的文件或者通過KML MIME類型的方式自動啓動谷歌地球。允許從JavaScript和谷歌地球API
我可以構建一個「數據:」 URL激活下載使用谷歌地球API在JavaScript創建KML文件,但在Chrome這隻作品。部分在FireFox中工作,但以「.part」文件擴展名保存,因此用戶必須明確重命名要在Google地球中打開的文件。 IE完全忽略了這一點。例如,IE 9不支持Javascript生成的文件下載。我正在尋找一款至少具有Chrome + FireFox + IE的跨瀏覽器解決方案。
<script type="text/javascript">
var ge;
var placemark;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCallback, failureCallback);
}
... some code to create some KmlObject
function download() {
// serialize as KML text to export
var placemarkText = placemark.getKml();
if (placemarkText) {
var uriContent = "data:application/vnd.google-earth.kml+xml;charset=UTF-8," +
encodeURIComponent(placemarkText);
window.open(uriContent, 'KML Download');
}
}
</script>
</head>
<body onload="init()" style="font-family: arial, sans-serif; font-size: 13px; border: 0;">
<INPUT TYPE="button" NAME="button2" Value="Download KML" onClick="javascript:download()">
<div id="map3d" style="width: 600px; height: 380px;"></div>
</body>
</html>
我見過的黑客與http://code.google.com/p/download-data-uri/,但只適用於Chrome所以這不是一個可行的解決方案。
的[在內存中創建一個文件供用戶下載,而不是通過服務器]可能重複(http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-下載 - 不通過服務器) – Fraser