3
我成功地從Openlayers寫入KML,但是沒有樣式(顏色,筆畫等)出現在kml文件中。是否可以使用樣式生成KML?Openlayers導出爲KML並保留我的地圖樣式
我發現了一個類似的問題在這裏:https://gis.stackexchange.com/questions/17031/openlayers-format-kml-write-style
在此先感謝。
我成功地從Openlayers寫入KML,但是沒有樣式(顏色,筆畫等)出現在kml文件中。是否可以使用樣式生成KML?Openlayers導出爲KML並保留我的地圖樣式
我發現了一個類似的問題在這裏:https://gis.stackexchange.com/questions/17031/openlayers-format-kml-write-style
在此先感謝。
由於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;
};