2012-08-16 49 views

回答

5

由於WRITE方法尚未使用'extractStyles':true,屬性,因此您可以看到here。只有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; 

};