[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