允许下载从JavaScript和谷歌地球API创建的KML文件
Allow download of KML file created from JavaScript and Google Earth API
想要创建一个完全在浏览器中运行的web应用程序,而没有使用Google Earth API即时创建KML的后端服务器组件,其中单击"下载"按钮激活web浏览器的正常内容下载功能,提示以。KML扩展名保存文件或通过KML mime类型自动启动Google Earth。
我可以构造一个"data:"URL来激活使用Google Earth API在JavaScript中创建的KML文件的下载,但这只适用于Chrome。部分适用于FireFox,但保存时使用"。"part"文件扩展名,因此用户必须显式重命名文件以在Google Earth中打开。IE完全忽略了这一点。例如,ie9不支持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,所以这不是一个实用的解决方案。
一种可能的方法是使用download。它是……
"一个javascript和Flash库,可以创建和下载的文本文件,无需服务器交互。"
您可以在这里看到一个工作示例。不幸的是,我不相信有任何方式可以在传统浏览器上实现这一点。
相关文章:
- 在谷歌地球企业客户端程序化打开气球
- 谷歌地球回调未开火
- 谷歌地球插件 — 如何检查带有 ID 的元素是否已经存在
- 谷歌地球KmlModel海拔高度
- 谷歌地球Api改变图像对比度
- 谷歌地球“ERR_CREATE_PLUGIN”
- 谷歌地球捕获当前地球视图的KML
- 优化谷歌地球插件中绘制的巨大 GPS 轨道
- 带有谷歌地球 API 的地标 ID 数组
- 谷歌地球 API 在鼠标悬停时更改地标图像
- 谷歌地球API:鼠标悬停事件似乎被鼠标移动阻止,而鼠标按下
- 谷歌地球API不会创建我想要的地标
- 谷歌地球插件API-我如何才能得到当前的地图比例
- 谷歌地球API,如何防止重复的标记
- Javascript谷歌地球Api -更新所有多边形坐标立即(多几何?)
- 允许下载从JavaScript和谷歌地球API创建的KML文件
- 使用谷歌地球API查找景观结构
- 谷歌地球Api-自己的图片
- 限制缩放/可视区域与谷歌地球API
- 谷歌地球API -转换ED50 / WGS84