Changeset 6461 for issm/trunk/src/m/kml/kml_part_elems.m
- Timestamp:
- 11/01/10 15:54:12 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk/src/m/kml/kml_part_elems.m ¶
r6417 r6461 2 2 % create kml polygons for the partition elements. 3 3 % 4 % [ ]=kml_part_elems(fid,md,params)4 % [kfold]=kml_part_elems(md,params) 5 5 % 6 6 % where the required input is: 7 % fid (char, file ID of .kml file)8 7 % md (model, model class object) 9 8 % … … 19 18 % prtplt (char, 'off'/'no' for partition segment plot) 20 19 % 21 function []=kml_part_elems(varargin) 20 % and the required output is: 21 % kfold (kml_folder, folder of polygon placemarks) 22 % 23 function [kfold]=kml_part_elems(varargin) 22 24 23 25 if ~nargin … … 30 32 iarg=1; 31 33 if (nargin >= 1) 32 fid=varargin{1}; 33 end 34 if ~exist('fid','var') || isempty(fid) || (fid < 0) 35 error('File ID ''%d'' must be open.',fid); 36 end 37 38 iarg=iarg+1; 39 if (nargin >= 2) 40 md=varargin{2}; 34 md=varargin{1}; 41 35 end 42 36 if ~exist('md','var') || isempty(md) || ~isa(md,'model') … … 109 103 if (~exist('prtplt','var') || strncmpi(prtplt,'on' ,2) || strncmpi(prtplt,'y',1)) && ... 110 104 md.npart 111 fprintf(fid,' <Folder>\n');112 fprintf(fid,' <name>Partition Elements</name>\n');113 fprintf(fid,' <visibility>1</visibility>\n');114 fprintf(fid,' <description>Partitions=%d, Nodes=%d</description>\n',...105 kfold=kml_folder(); 106 kfold.name ='Partition Elements'; 107 kfold.visibility=1; 108 kfold.descript =sprintf('Partitions=%d, Nodes=%d\n',... 115 109 md.npart,md.numberofgrids); 110 kfold.feature ={repmat(kml_placemark(),0,0)}; 116 111 117 % write each partition loop as a polygon 112 % write each partition loop as a polygon placemark 118 113 119 114 disp(['Writing ' num2str(md.npart) ' partitions as KML polygons.']); … … 144 139 end 145 140 for i=1:length(iloop)-1 146 fprintf(fid,' <Placemark>\n');141 kplace=kml_placemark(); 147 142 if (length(iloop)-1 > 1) 148 fprintf(fid,' <name>Partition %d, Loop %d</name>\n',k,i);143 kplace.name =sprintf('Partition %d, Loop %d',k,i); 149 144 else 150 fprintf(fid,' <name>Partition %d</name>\n',k);145 kplace.name =sprintf('Partition %d',k); 151 146 end 152 fprintf(fid,' <visibility>1</visibility>\n');147 kplace.visibility=1; 153 148 if exist('pdata','var') 154 fprintf(fid,' <description>Partition data: %g</description>\n',pdata(k));149 kplace.descript =sprintf('Partition data: %g',pdata(k)); 155 150 imap = fix((pdata(k)-cmin)/(cmax-cmin)*size(cmap,1))+1; 156 151 if (imap >= 1) && (imap <= size(cmap,1)) 157 fprintf(fid,' <styleUrl>#MatlabColor%d</styleUrl>\n',imap);152 kplace.styleurl =sprintf('#MatlabColor%d',imap); 158 153 elseif (pdata(k) == cmax) 159 fprintf(fid,' <styleUrl>#MatlabColor%d</styleUrl>\n',size(cmap,1));154 kplace.styleurl =sprintf('#MatlabColor%d',size(cmap,1)); 160 155 else 161 fprintf(fid,' <styleUrl>#BlackLineEmptyPoly</styleUrl>\n');156 kplace.styleurl =sprintf('#BlackLineEmptyPoly'); 162 157 end 163 158 else 164 fprintf(fid,' <styleUrl>#BlackLineRandomPoly</styleUrl>\n');159 kplace.styleurl =sprintf('#BlackLineRandomPoly'); 165 160 end 166 fprintf(fid,' <Polygon>\n'); 167 fprintf(fid,' <extrude>1</extrude>\n'); 168 fprintf(fid,' <altitudeMode>relativeToGround</altitudeMode>\n'); 169 fprintf(fid,' <outerBoundaryIs>\n'); 170 fprintf(fid,' <LinearRing>\n'); 171 fprintf(fid,' <coordinates>\n'); 161 162 kpoly=kml_polygon(); 163 kpoly.extrude =1; 164 kpoly.altmode ='relativeToGround'; 165 166 kring=kml_linearring(); 167 kring.coords =zeros(iloop(i+1)-iloop(i)+1,3); 168 172 169 for j=iloop(i):iloop(i+1)-1 173 [lat (j),long(j)]=mapxy(md.x(edgeper(j,1)),md.y(edgeper(j,1)),'s');174 fprintf(fid,' %0.16g,%0.16g,%0.16g\n',long(j),lat(j),alt);170 [lat,long]=mapxy(md.x(edgeper(j,1)),md.y(edgeper(j,1)),'s'); 171 kring.coords(j-iloop(i)+1,:)=[long lat alt]; 175 172 end 176 fprintf(fid,' %0.16g,%0.16g,%0.16g\n',long(iloop(i)),lat(iloop(i)),alt);173 kring.coords(end,:)=kring.coords(1,:); 177 174 178 fprintf(fid,' </coordinates>\n'); 179 fprintf(fid,' </LinearRing>\n'); 180 fprintf(fid,' </outerBoundaryIs>\n'); 181 fprintf(fid,' </Polygon>\n'); 182 fprintf(fid,' </Placemark>\n'); 175 kpoly.outer=kring; 176 kplace.geometry=kpoly; 177 kfold.feature{1}(end+1)=kplace; 178 clear kring kpoly kplace 183 179 end 184 180 end 185 fprintf(fid,' </Folder>\n');186 181 end 187 182
Note:
See TracChangeset
for help on using the changeset viewer.