Hi,
we have/had the same "issue"(luckily we could change to server-side
formatting). If you call the function below with
"exportToFormat(mylayer,'kml')" you will get a download dialogue(tested
with FF 3.6-4.0), !!but!! the write-function of OpenLayers.Format.KML(I
think with json it's the same) is not perfect because style info is
missing, if you're will enhance it.
exportToFormat:function (layer, format) {
if (layerinstanceof OpenLayers.Layer.Vector&&
layer.features.length == 0) {
return;
}
var formatText =null;
var mimeType =null;
if (format =='svg') {
mimeType ="image/svg+xml";
formatText = document.getElementById(layer.id).innerHTML;
}else if (format =='kml') {
mimeType ="application/vnd.google-earth.kml+xml";
var format =new OpenLayers.Format.KML(
{ extractAttributes:true,
extractTracks:true,
internalProjection :new OpenLayers.Projection("EPSG:900913"),
externalProjection :new OpenLayers.Projection("EPSG:4326")
}
);
var features =new Array();
var operation =new OpenLayers.Operation.CopyFeatureToLayer();
for (var i = 0; i< layer.features.length; i++) {
var newfeature =new
OpenLayers.Feature.Vector(layer.features[i].geometry.clone());
newfeature.style = layer.features[i].style ||
layer.styleMap.createSymbolizer(layer.features[i],
layer.features[i].renderIntent ||'default');
newfeature.attributes =
operation.clone(layer.features[i].attributes);
features.push(newfeature);
}
formatText = format.write(features);
}
if (formatText !=null) {
open("data:" + mimeType +"," + encodeURIComponent("<?xml version=\"1.0\"
encoding=\"UTF-8\"?> " + formatText));
}
},
Am 21.01.2011 15:17, schrieb David Zwarg:
Hello Mohammed,
Look at the OpenLayers.Format classes.
Here's a link to the geojson format example:
http://dev.openlayers.org/apidocs/files/OpenLayers/Format/GeoJSON-js.html
You will probably do something like:
var format = new OpenLayers.Format.GeoJSON();
// given that 'layer' is a vector layer attached to the map with some
features:
var jsonstring = format.write( layer.features );
// given that 'txtarea' is an HTML textarea element somewhere in your
page to display the geojson:
txtarea.value = jsonstring;
There's no way to save the file directly via openlayers (opening a
"Save File..." dialog), you have to do some copy & pasting from the
browser.
-z
On Fri, Jan 21, 2011 at 8:51 AM, Mohammed Rashad
<[email protected] <mailto:[email protected]>> wrote:
How can I save a OpenLayers.Layer.Vector to a gml, geojson or any
openlayer supported formats without using
WFS or WFS- T( without geoserver,postgis);
Is it possible?
--
Rashad
_______________________________________________
Dev mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/openlayers-dev
_______________________________________________
Dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-dev
_______________________________________________
Dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-dev