[OpenLayers-Users] OpenLayers.Format.WKT.write()
taviroquai
taviroquai at gmail.com
Sat Aug 22 20:14:23 EDT 2009
Hi all,
WKT.write method accepts a single feature OR an array of features which then
returns as a GEOMETRYCOLLECTION.
There is a case that a single feature may hold a geometry collection class.
Here is my changes for the write method - I know that this is not the best
way to resolve this case but this is the shortest code insertion - all
feedback is welcome:
write:function(features){
var collection,geometry,type,data,isCollection,isSubCollection;
if(features.constructor==Array){
collection=features;
isCollection=true;
}
else{
type=features.geometry.CLASS_NAME.split('.')[2].toLowerCase();
if (type == 'collection') {
collection = features.geometry.components;
isCollection=true;
isSubCollection=true;
}
else {
collection=[features];
isCollection=false;
}
}
var pieces=[];
if(isCollection){
pieces.push('GEOMETRYCOLLECTION(');
}
for(var i=0,len=collection.length;i<len;++i){
if(isCollection&&i>0){
pieces.push(',');
}
if (isSubCollection) geometry=collection[i]; else
geometry=collection[i].geometry;
type=geometry.CLASS_NAME.split('.')[2].toLowerCase();
if(!this.extract[type]){
return null;
}
if(this.internalProjection&&this.externalProjection){
geometry=geometry.clone();
geometry.transform(this.internalProjection,this.externalProjection);
}
data=this.extract[type].apply(this,[geometry]);
pieces.push(type.toUpperCase()+'('+data+')');
}
if(isCollection){
pieces.push(')');
}
return pieces.join('');
},
--
View this message in context: http://n2.nabble.com/OpenLayers-Format-WKT-write-tp3497030p3497030.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list