官网demo地址:
Custom Drag-and-Drop (KMZ)
https://openlayers.org/en/latest/examples/drag-and-drop-custom-kmz.html
这个示例展示了如何拖拽文件到地图上并实时解析成矢量图层


首先来看看什么是KMZ
KMZ和KML有什么区别?
KML格式:
- 文件格式:KML文件是基于XML的纯文本文件。
- 文件扩展名:.kml
- 内容:
- 包含地理要素和数据,例如点、线、面、图像叠加以及其他地理信息。
- 结构清晰,可读性强,可以用文本编辑器打开查看和编辑。
- 大小:因为是纯文本文件,KML文件可能会变得非常大,尤其是包含大量详细地理数据时。
KMZ 格式:
- 文件格式:KMZ文件是KML文件的压缩版本。
- 文件扩展名:.kmz
- 内容:
- KMZ文件是一个ZIP压缩包,里面包含一个或多个KML文件以及其他相关资源(如图片、模型等)。
- 主KML文件通常命名为
doc.kml。 - 可以包含多个文件和文件夹,使得相关资源可以一起分发。
- 大小:由于KMZ是压缩文件,通常比对应的KML文件要小,便于分发和下载。
- 多媒体资源:KMZ文件可以打包包括图片、3D模型(如Collada文件)等多媒体资源,这些资源可以在解压后保持相对路径关系。
由此可知,KMZ格式转化成KML格式只需要进行解压,所以这里创建了一个KMZ类继承了KML,重写了readFeature和readFeatures两个方法,在解析之前增加了解压操作。
class KMZ extends KML {
constructor(opt_options) {
const options = opt_options || {};
options.iconUrlFunction = getKMLImage;
super(options);
}
getType() {

https://openlayers.org/en/latest/examples/drag-and-drop-custom-kmz.html
最低0.47元/天 解锁文章
2699

被折叠的 条评论
为什么被折叠?



