我成功地从 Openlayers 编写了 KML,但是 kml 文件中不存在任何样式(颜色、描边等)。是否可以生成带有样式的 KML?
我在这里发现了类似的问题:https://gis.stackexchange.com/questions/17031/openlayers-format-kml-write-style https://gis.stackexchange.com/questions/17031/openlayers-format-kml-write-style
提前致谢。
到目前为止,WRITE 方法还没有使用'extractStyles':true,
如你所见的财产here http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Format/KML.js?rev=12434。只有 READ 方法可以。
我看到的唯一方法就是重新创建它们。在下面的示例中,我创建了我想要的 KML 样式,并且注射了它进入 openlayers 创建的 kml 字符串。
myorg.Util.GetKMLFromFeatures = function (features, strfolderName, strfolderDescription) {
var format = new OpenLayers.Format.KML({
'maxDepth': 10,
'extractStyles': true,
'internalProjection': myorg.UI.Map.getMap().baseLayer.projection,
'externalProjection': myorg.UI.Map.Projections.Geographic
});
var kmlStyle = "<Style id='OutlineOnlyStyle'><PolyStyle><color>ff0000cc</color><fill>0</fill><outline>1</outline></PolyStyle></Style>";
format.foldersName = strfolderName;
format.foldersDesc = strfolderDescription;
//add style description
var kml = format.write(features).replace(/<Folder>/g, '<Folder>' + kmlStyle)
.replace(/><name>/g, '><styleUrl>#OutlineOnlyStyle</styleUrl><name>');
return kml;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)