Openlayers导出为KML并保留地图样式

4
1个回答

7
截至目前为止,可以在此处查看:http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Format/KML.js?rev=12434'extractStyles':true属性尚未被WRITE方法使用。仅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;

};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接